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

Chương trình Java Binary Insertion Sort

Binary Insertion Sort dùng binary search tìm vị trí đúng để chèn phần tử tại chỉ số cụ thể mỗi lần lặp. Trước, tìm vị trí cần chèn. Sau đó, dịch các phần tử sang phải. Bây giờ, phần tử cụ thể đặt vào vị trí.

Dưới đây là mã Java Binary Insertion Sort:

Ví dụ

public class Demo{ 
    void Cocktail_Sort(int my_arr[]){ 
        boolean swapped = true; 
        int start = 0; 
        int end = my_arr.length; 
        while (swapped == true) { 
            swapped = false; 
            for (int i = start; i < end - 1; ++i) { 
                if (my_arr[i] > my_arr[i + 1]) { 
                    int temp = my_arr[i]; 
                    my_arr[i] = my_arr[i + 1]; 
                    my_arr[i + 1] = temp; 
                    swapped = true; 
                } 
            } 
            if (swapped == false) 
                break; 
            swapped = false; 
            end = end - 1; 
            for (int i = end - 1; i >= start; i--) { 
                if (my_arr[i] > my_arr[i + 1]) { 
                    int temp = my_arr[i]; 
                    my_arr[i] = my_arr[i + 1]; 
                    my_arr[i + 1] = temp; 
                    swapped = true; 
                } 
            } 
            start = start + 1; 
        } 
    } 
    void print_values(int my_arr[]){ 
        for (int i = 0; i < my_arr.length; i++) 
            System.out.print(my_arr[i] + " "); 
        System.out.println(); 
    } 
    public static void main(String[] args){ 
        Demo my_object = new Demo(); 
        int my_arr[] = { 6, 8, 34, 21, 0, 1, 98, 64, 6}; 
        System.out.println("Mảng chứa: "); 
        for (int i = 0; i < my_arr.length; i++) 
            System.out.print(my_arr[i] + " "); 
        System.out.println(); 
        my_object.Cocktail_Sort(my_arr); 
        System.out.println("Mảng sau khi cocktail sort: "); 
        my_object.print_values(my_arr); 
    } 
}

Kết quả

Mảng chứa 6 8 34 21 0 1 98 64 6 
Mảng sau khi cocktail sort: 0 1 6 6 8 21 34 64 98

Lưu ý: Mã ví dụ thực hiện Cocktail Sort chứ không phải Binary Insertion Sort như tiêu đề. Binary Insertion Sort nên dùng binary search để tìm vị trí chèn.