Rumah >Java >javaTutorial >Bagaimana untuk melaksanakan isihan gelembung, isihan pemilihan, isihan pantas dalam Java
Isih Buih ialah jenis pengisihan yang paling mudah, yang dilakukan melalui semua elemen tatasusunan berulang kali dibandingkan dua dua dalam gelang, sehingga nombor itu ditamatkan apabila tiada lagi nombor untuk ditukar, dan kemudian nombor seterusnya ditambah sehingga keseluruhan tatasusunan diisih. Kerana mereka terapung satu demi satu, ia dipanggil jenis gelembung. Masa gelung berganda O(n^2)
Perihalan algoritma:
Bandingkan dua data bersebelahan jika. Yang pertama lebih besar daripada yang kedua, cuma tukar dua nombor
Lakukan 1 kerja yang sama untuk setiap nombor bersebelahan, supaya dari awal satu pasukan hingga akhir satu pasukan adalah at the end Nombor ialah nombor yang terbesar.
Operasi pada semua elemen kecuali yang terakhir.
Ulang langkah 1~3 sehingga pesanan selesai.
Penggambaran kod:
Pelaksanaan kod:
Isih Pilih ialah pengisihan intuitif, dengan menentukan nilai maksimum atau minimum Kunci, dan kemudian mengisih daripada jalur Cari nombor terbesar atau terkecil dan tukarkannya ke kedudukan yang sepadan. Pilih pilihan terbaik seterusnya. Kerumitan masa gelung berganda ialah O(n^2)
Penerangan algoritma:
Dalam urutan tidak tertib panjang N In tatasusunan, merentasi nombor n-1 buat kali pertama untuk mencari nombor terkecil dan menukarnya dengan nombor pertama.
Lintas nombor n-2 bermula dari nombor seterusnya untuk kali kedua, cari nombor terkecil dan tukarkan dengan nombor kedua.
Ulangi operasi di atas sehingga lintasan n-1 bagi nombor terkecil dan nombor n-1 ditukar, dan pengisihan selesai.
Penggambaran algoritma:
Pelaksanaan kod:
<code><p><img src="https://img.php.cn/upload/article/000/000/164/168309619043778.png" alt="Bagaimana untuk melaksanakan isihan gelembung, isihan pemilihan, isihan pantas dalam Java"><br></p></code>
Isih Pantas (QuickSort) ialah jenis yang paling biasa digunakan selepas tidak termasuk faktor kestabilan. Saya ingin memperkenalkan dua cara untuk menggunakannya. Salah satunya adalah dengan melaksanakan fungsi qsort secara langsung dalam fail pengepala fail stdlib.h saya, yang sama seperti menulis kod biasa. Pengisihan tatasusunan dilaksanakan dengan menggunakan qsort (nama tatasusunan, panjang, saiz (panjang nombor pertama), compInc/comoDec). Yang terakhir adalah dalam bentuk panggilan rekursif.
Penerangan algoritma:
Pilih elemen daripada jujukan sebagai rujukan.
Susun semula urutan, letakkan semua yang lebih kecil daripada penanda aras di hadapan penanda aras, dan letakkan semua yang lain di belakang (saiz yang sama boleh di kedua-dua sisi Selepas). selesai, penanda aras akan berada di tengah-tengah partition.
Isih urutan yang lebih kecil daripada elemen asas dan elemen asas hujan lebat melalui panggilan rekursif.
Penggambaran algoritma:
Pelaksanaan kod:
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan isihan gelembung, isihan pemilihan, isihan pantas dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!