Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java Merge Sort lặp (Iterative)

Dưới đây là chương trình Java cho Merge Sort lặp:

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("Mảng sau khi sắp xếp là: "); 
        for(i = 0; i < my_arr.length; i++) 
            System.out.print(my_arr[i] + " "); 
    } 
}

Kết quả

Mảng sau khi sắp xếp là: 0 11 21 34 56 78 91

Lớp Demo chứa hàm merge_sort, kiểm tra nếu mảng rỗng thì trả về. Nếu độ dài mảng lớn hơn 1, giá trị mid được tính và mảng được duyệt đến giá trị mid. 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 vào mảng mới, phần tử bên phải vào mảng khác. Bây giờ các mảng này được tách và sắp xếp. Sau đó chúng được gộp lại 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ử mảng. Kết quả được hiển thị trên console.