Computer >> Máy Tính >  >> Lập trình >> Java

Chương trình Java để sắp xếp hợp nhất lặp lại

Sau đây là chương trình Java cho Sắp xếp Hợp nhất lặp lại -

Ví dụ

import java.util.Arrays;
public class Demo{
   public static void merge_sort(int[] my_arr){
      if(my_arr == null){
         return;
      }
      if(my_arr.length > 1){
         int mid = my_arr.length / 2;
         int[] left = new int[mid];
         for(int i = 0; i < mid; i++){
            left[i] = my_arr[i];
         }
         int[] right = new int[my_arr.length - mid];
         for(int i = mid; i < my_arr.length; i++){
            right[i - mid] = my_arr[i];
         }
         merge_sort(left);
         merge_sort(right);
         int i = 0;
         int j = 0;
         int k = 0;
         while(i < left.length && j < right.length){
            if(left[i] < right[j]){
               my_arr[k] = left[i];
               i++;
            } else {
               my_arr[k] = right[j];
               j++;
            }
            k++;
         }
         while(i < left.length){
            my_arr[k] = left[i];
            i++;
            k++;
         }
         while(j < right.length){
            my_arr[k] = right[j];
            j++;
            k++;
         }
      }
   }
   public static void main(String[] args){
      int my_arr[] = {56, 78, 91, 21, 34, 0, 11};
      int i=0;
      merge_sort(my_arr);
      System.out.println("The array after sorting is ");
      for(i=0; i<my_arr.length; i++)
      System.out.print(my_arr[i]+" ");
   }
}

Đầu ra

The array after sorting is
0 11 21 34 56 78 91

Một lớp có tên Demo chứa hàm ‘merge_sort’ để kiểm tra xem mảng có trống không, nếu có, không trả về kết quả nào. Nếu độ dài của mảng lớn hơn một, giá trị cho 'giữa' sẽ được tính và mảng được lặp lại cho đến giá trị 'giữa'. Về cơ bản mảng được chia thành hai phần bằng nhau và các phần tử ở bên trái của mảng được đưa vào một mảng mới và các phần tử ở bên phải của mảng được đưa vào một mảng khác. Bây giờ, các mảng này được phân tách và sắp xếp. Sau đó, chúng được hợp nhất với nhau.

Trong hàm main, mảng được định nghĩa và hàm được gọi trên các phần tử của mảng này. Đầu ra được hiển thị trên bảng điều khiển.