Gabungkan ide algoritma pengurutan:
Bagi - taklukkan; setiap proses rekursif melibatkan tiga langkah. Pertama, dekomposisi: menguraikan urutan n elemen yang akan diurutkan menjadi dua urutan berikutnya, masing-masing urutan mencakup n/2 elemen.
Kedua, Tata Kelola: Panggil MergeSort pada setiap urutan secara terpisah dan lakukan operasi rekursif. Ketiga, Gabung: Gabungkan dua urutan yang diurutkan untuk menghasilkan hasil penyortiran.
public static void mergeSort(int[] a, int[] tmp, int kiri, int kanan) { if (kiri < kanan) { int pertengahan = kiri + (kanan - kiri) / 2; mergeSort(a, tmp, kiri, tengah);// Pengurutan kiri mergeSort(a, tmp, pertengahan + 1, kanan);// Pengurutan kanan penggabungan(a, tmp, kiri, tengah + 1, kanan);// Gabungkan kiri dan kanan} }penggabungan kekosongan statis publik(int[] a, int[] tmp, int kiri, int rightPos, int kanan) { int leftEnd = rightPos - 1; 1; sementara (kiri <= leftEnd && rightPos <= kanan) { jika (a[kiri] < a[rightPos]) { tmp[tmpPos++] = a[kiri++]; } lain { tmp[tmpPos++] = a[kananPos++]; } } while (kiri <= leftEnd) { tmp[tmpPos++] = a[kiri++]; ] = a[kananPos++]; } untuk (int i = 0; i < angka; i++, kanan--) { a[kanan] = tmp[kanan];Diagram skema algoritma penggabungan:
Di atas adalah keseluruhan isi artikel ini, saya harap Anda semua menyukainya.