Rumah > Java > javaTutorial > Bagaimana untuk memasukkan elemen ke dalam tatasusunan java dan menyusunnya dengan cepat

Bagaimana untuk memasukkan elemen ke dalam tatasusunan java dan menyusunnya dengan cepat

PHPz
Lepaskan: 2023-04-20 09:43:06
ke hadapan
1339 orang telah melayarinya

1. Beroperasi dari elemen kedua tatasusunan Jika didapati bahawa elemen sebelumnya lebih besar daripadanya, gerakkan elemen sebelumnya ke belakang sehingga elemen yang ditunjuk oleh cur lebih besar daripada atau sama dengan elemen sebelumnya masa Kedudukan yang ditunjuk oleh cur ialah kedudukan di mana elemen yang hendak dimasukkan harus dimasukkan.

static int[] insertSort2(int[] array){
 
    int len = array.length;
 
    for (int begin = 1; begin < len; begin++){
 
        int cur = begin;
 
        int tmp = array[cur];
 
        while (cur > 0 && array[cur] < array[cur-1]){
 
            array[cur] = array[cur-1];
 
            cur--;
 
        }
 
        array[cur] = tmp;
 
    }
 
    return array;
 
}
Salin selepas log masuk

2. Carian binari mengurangkan bilangan perbandingan, iaitu panggilan fungsi cmp, dan juga mengurangkan panggilan fungsi swap. Ia adalah lebih pantas untuk mencari kedudukan di mana elemen semasa harus dimasukkan, dan kemudian mengalihkannya, yang meningkatkan kecekapan.

static int[] insertSort3(int[] array){
 
        int len = array.length;
 
 
 
        for (int begin = 1; begin < len; begin++){
 
            int v = array[begin];
 
            int insertIndex = search(array,begin);
 
            // 将 [insertIndex, begin) 范围内的元素往右边挪动一个单位
 
            for (int i = begin; i > insertIndex; i--){
 
                array[i] = array[i-1];
 
            }
 
            array[insertIndex] = v;
 
        }
 
        return array;
 
    }
 
    static int search(int[] array, int index){
 
        int begin = 0;
 
        int end = index;
 
        while(begin < end){
 
            int mid = (begin+end) >> 1;
 
            if (array[index] < array[mid]){
 
                end = mid;
 
            }else{
 
                begin = mid+1;
 
            }
 
        }
 
        return begin;
 
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk memasukkan elemen ke dalam tatasusunan java dan menyusunnya dengan cepat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan