Contoh artikel ini menceritakan pemilihan ringkasan algoritma Java Sort. Bagikan untuk semua orang untuk referensi Anda. Analisis spesifiknya adalah sebagai berikut:
Operasi dasar pemilihan penyortiran adalah salah satu elemen minimum (atau maksimum) yang dipilih dari elemen data yang akan diurutkan, dan pesanan berada pada akhir jumlah urutan hingga elemen data yang akan diurutkan. Algoritma tidak stabil, ruang ekstra O (1), kompleksitas waktu perbandingan adalah O (n^2), dan kompleksitas waktu pertukaran adalah O (n), yang tidak adaptif. Ini tidak direkomendasikan dalam kebanyakan kasus. Hanya jika Anda ingin mengurangi jumlah pertukaran.
Ide Dasar
Pilihan langsung dari file file yang direkam N dapat dipilih langsung melalui perjalanan N-1 untuk mendapatkan hasil yang tertib:
① Keadaan Awal: Area yang tidak teratur adalah R [1..n], dan area yang tertib kosong.
② Jenis pertama diurutkan di area yang tidak tertib R [1..n] untuk memilih catatan minimum R [k], dan menukarnya dengan catatan pertama R [1] di area yang tidak tertib. 2..n] diubah ke area yang dipesan baru dari jumlah catatan dan area gangguan baru dengan sejumlah catatan 1 dan jumlah catatan menurun sebesar 1.
Nympho
③ Menyortir II
Pada awal jenis I, area yang dipesan saat ini dan area gangguan adalah R [1..i-1] dan R (1≤i≤n-1). Jenis ini memilih catatan minimum R [k] dari area gangguan saat ini, dan menukarnya dengan catatan pertama di area yang tidak tertib, sehingga r [1..i] dan r dipisahkan menjadi catatan. Area jumlah dan area gangguan baru dengan sejumlah catatan menurun sebesar 1.
Dengan cara ini, pemilihan langsung file dari file yang direkam N dapat secara langsung dipilih oleh perjalanan N-1 untuk mendapatkan hasil yang tertib.
Implementasi Kode
Tes kelas publik {public static int [] a = {10,32,1,9,5,7,12,0,4,3}; {int i; // cycling variable int index = a.length; // data indeks variabel.out.print (" printf ("%3s", a); ; ; nilai nilai minimum untuk penyimpanan untuk (j = i; j <dalam <index; j ++) {if (a [j] <minvalue) // temukan nilai minimum {minvalue {minvalue = a [j]; / Penyimpanan IndeksMin = J;} temp = a; k (k (k = 0; k <index; k ++) system.out.printf ("%3s", a [k]); System.out.println ("");}}}}}}}
Seperti metode penyortiran yang menggelegak, siklus lapisan luar masih perlu melakukan N-1 kali, dan efisiensinya masih buruk.
Diharapkan bahwa artikel ini bermanfaat untuk desain program Java semua orang.