Contoh artikel ini menceritakan penyortiran ringkasan algoritma Java Sort. Bagikan untuk semua orang untuk referensi Anda. Analisis spesifiknya adalah sebagai berikut:
Pada tahun 1991, Robert W. Flayd, seorang profesor di Departemen Ilmu Komputer di Departemen Ilmu Komputer di Stanford University, dan J. Williams pada tahun 1964 bersama -sama menemukan esensi heap sort (heap sort) yang terkenal Artikel ini terutama memperkenalkan Java ke tumpukan penyortiran.
Heapsort mengacu pada algoritma penyortiran yang dirancang oleh struktur data tiang (Heap), yang dapat menggunakan karakteristik array untuk dengan cepat menemukan elemen indeks yang ditentukan. Pesanan penumpukan adalah metode penyortiran yang tidak stabil.
Pesanan penumpukan menggunakan karakteristik maksimum (atau minimum) dari kata kunci dari tiang pancang besar (atau tumpukan root kecil) catatan atas, yang membuat catatan kata kunci maksimum (atau minimum) di area gangguan saat ini sederhana.
(1) Ide -ide dasar diurutkan dengan tumpukan besar
① Pertama-tama membangun file awal R [1..n] ke dalam tiang akar yang besar. memenuhi r [1 .. n-1] .keys≤r [n] .key
③ Karena akar baru R [1] dapat melanggar sifat tumpukan setelah pertukaran, wilayah non-urutan saat ini R [1 .. N-1] harus disesuaikan menjadi tumpukan. Kemudian kata kunci dalam kata kunci dalam r [1..n-1] lagi dipertukarkan dengan catatan terakhir r [n-1] dalam interval, yang memperoleh wilayah yang tidak tertib baru R [1 ..... N-2 ] dan area tertib r [n-1..n], dan masih memenuhi hubungan r [1 ..- .. n-2] .keys≤r [n-1..n] .keys, juga dengan r [1..n-2] Sesuaikan dengan tumpukan.
Nympho
Sampai hanya ada satu elemen di area yang tidak teratur.
(2) Operasi dasar algoritma penyortiran akar besar:
① Inisialisasi operasi: Konstruksi R [1..n] ke dalam tumpukan awal;
② Operasi dasar dari setiap jenis: Pertukaran catatan terakhir dari catatan tiang R [1] di area gangguan saat ini, dan kemudian sesuaikan area gangguan baru menjadi tumpukan (juga dikenal sebagai pembangunan kembali).
Melihat:
① Lakukan saja penyortiran N-1 dan pilih kata kunci N-1 yang lebih besar untuk meningkatkan file secara berurutan.
② Menyortir dengan akar kecil mirip dengan akar besar, tetapi hasil jenisnya berkurang dan tertib. Pesanan susun dan pemilihan penyortiran langsung berlawanan: kapan saja, wilayah yang tidak teratur selalu sebelum area yang tertib, dan area yang tertib secara bertahap berkembang dari belakang vektor asli ke seluruh vektor.
Implementasi Kode:
Tes kelas publik {public static int [] heap = {10, 32, 1, 9, 5, 7, 0, 4, 3}; {int i; // variabel siklus int index = heap.length; +) System.out .printf ("%3s", heap); (i = 1; i <index -1; i ++) system.out.printf ("%3s", heap); Void creap (int root, int index) {int i, j; Submp = head [root]; [j]) finish = 1; // bungkus untuk melengkapi {heap [j / 2] = heap [j]; ; ;. heap [1] = testheap (1, i); "%3s", heap [j]);
Tumpukan dapat dianggap sebagai pohon, dan ketinggian simpul di ketinggian dapat didefinisikan sebagai jumlah jalur drop sederhana terpanjang dari simpul ke simpul daun; akar. Kita akan melihat bahwa beberapa operasi dasar pada struktur tumpukan sebagian besar sebanding dengan ketinggian pohon, yaitu O (LGN). Melalui membaca artikel ini, saya berharap dapat membantu Anda.
Diharapkan bahwa artikel ini bermanfaat untuk desain program Java semua orang.