Contoh artikel ini menceritakan implementasi dan analisis sederhana dari beberapa algoritma penyortiran Java. Bagikan untuk semua orang untuk referensi Anda. Spesifiknya adalah sebagai berikut:
Tes Paket; Ditentukan apakah orang Vietnam, // tetapi permintaan array dimulai dari nomor kedua [j] Daftar [j -1 1]) {int temp = [j]; dasar, tambahkan pencarian biner*/tempat bininsertsort (int [] r, int rendah, int tinggi) {untuk (int i = rendah+1; i <= tinggi; i ++) {int temp = r [i]; // Simpan elemen int hi = i -1; ; J> HI; int [] r, int rendah, int tinggi, int [] delta) {for (for (for (for (]. int k = 0; k <delngth; k ++) shellinsert (r, rendah, tinggi, delta [ K]);} private void shellinsert (int [] r, int low, int deldak) {for (int i = rendah+deltak; i <= tinggi; i ++) if (r [i] <r [i- Deltak]) {int temp = r [i]; ]; +) {// sebagai n -1 perjalanan ke int min = k; untuk (int i = min+1; i <= tinggi; i ++) // Pilih elemen dengan kata kunci terkecil jika (r [i] <r [min]) min = i; if (k! = min) {int temp = r [k]; min]; i = n/2; i> = 1; 1; ]; j <= tinggi; r [j]; 0, 99, 55, 7, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 5, 4, 3, 2, 1}; fs.insertsort (a); , 0, a.length-1);
Masukkan penyortiran, penyortiran pertukaran, penyortiran seleksi, penyortiran merger dan metode penyortiran lainnya memiliki karakteristik yang sama, yaitu, mereka semua menentukan posisi relatif antara elemen melalui elemen komparatif, yaitu, metode penyortiran di atas didasarkan pada perbandingan. Di bawah ini, kami akan membandingkan dan meringkas berdasarkan metode penyortiran komparatif.
Kami terutama membandingkan metode penyortiran dari kompleksitas waktu rata -rata algoritma, kompleksitas waktu terburuk, kompleksitas ruang, dan stabilitas penyortiran.
Metode Penyortiran Rata -rata Kompleksitas Waktu Kompleksitas Waktu Terburuk Kompleksitas Kompleksitas Ruang dan Stabilitas Stabilitas Termasuk Langsung (N2) (N2) ο (1) Penyortiran Busa Stabil (N2) ο (N2) ο (1) Penyortiran yang stabil dan cepat ) (N log n) l (n2) ο (log n) tidak stabil dan cukup pilih sortir ο (n2) ο (1) ο (1) Sortir tumpukan tidak stabil (n log n) ο (n log n) ο (n log n) ο (n log) 1) Sortir merger yang tidak stabil ο (n log n) ο (n log n) ο (n) stabil
Dalam hal kinerja waktu, penyortiran cepat adalah kinerja aktual terbaik dalam semua algoritma penyortiran. Ini dapat dihindari dengan mengubah penyortiran cepat. Dalam perbandingan penyortiran tumpukan dan penyortiran merger, ketika N besar, waktu yang dibutuhkan untuk merger dan penyortiran lebih sedikit, tetapi membutuhkan lebih banyak ruang penyimpanan tambahan.
Dari perspektif stabilitas metode, sebagian besar kompleksitas waktu adalah (N2) penyortiran adalah metode penyortiran yang stabil. Sebagian besar metode penyortiran dengan kinerja yang baik, seperti penyortiran cepat, penyortiran menumpuk, dan penyortiran Hill tidak stabil. Secara umum, metode penyortiran perbandingan antara proses penyortiran stabil.
Selain itu, stabilitas metode penyortiran ditentukan oleh metode itu sendiri.
Singkatnya, tidak ada salah satu metode penyortiran yang dibahas di atas benar -benar optimal.
Diharapkan bahwa artikel ini bermanfaat untuk desain program Java semua orang.