Deskripsi Algoritma: Untuk serangkaian catatan yang diberikan, pertama -tama gabungkan setiap dua yang berdekatan dengan panjang 1 untuk mendapatkan n/2 (bulat ke atas) memesan selanjutnya dengan panjang 2 atau 1, dan kemudian menggabungkannya berpasangan, dan ulangi proses ini sampai urutan yang dipesan diperoleh.
penyortiran paket;/*** Gabungkan Sort* Rata -rata O (nlogn), O (nlogn) terbaik, O (nLogn); kompleksitas ruang o (n); stabil; lebih kompleks * @author zeng * */kelas publik mergeSort {public static void merge (int [] a, int start, int mid, int end) {int [] tmp = int new [a.length]; System.out.println ("gabungan" + start + "~" + end); int i = start, j = mid + start + {start ") (i {i {i {i {i {i {i. (a [i] <a [j]) tmp [k ++] = a [i ++]; selain itu tmp [k ++] = a [j ++];} while (i! = mid+1) tmp [k ++] = a [i ++]; while (j! = end+1) tmp [k ++] = a [j ++]; untuk (i = start; i <= end; i ++) a [i] = tmp [i for); for. "); System.out.println ();} static void mergeSort (int [] a, int start, int end) {if (start <end) {int mid = (start + end)/ 2; mergeSort (a, start, mid); // memesan gabungan (a, mid + 1, end); // ordered gabungan (a, start) (amt) (a) (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a ENCEOD) {int [] b = {49, 38, 65, 97, 76, 13, 27, 50}; mergeSort (b, 0, b.length - 1);}}Mari kita lihat hasil operasi:
Meringkaskan
Di atas adalah semua konten dari artikel ini tentang implementasi sederhana menggabungkan penyortiran algoritma penyortiran Java. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!