1. Penyortiran gelembung
Ide Algoritma: Melintasi array yang akan diurutkan, dan membandingkan dua elemen yang berdekatan setiap kali. Jika urutan pengaturan mereka salah, pertukaran posisi mereka. Setelah perjalanan untuk mengurutkan, elemen terbesar akan melayang ke ujung array. Ulangi sampai penyortiran selesai.
Contoh Demonstrasi:
Implementasi Algoritma:
untuk (int i = 0; i <array.length-1; i ++) {// urutkan n-1 kali paling banyak untuk (int j = 0; j <array.length-i-1; j ++) {// berapa kali perlu ditukar if (array [j]> array [j+1]) {int temp = array [j]; array [j] = array [j+1]; array [j+1] = temp; }}}Kompleksitas Waktu Algoritma: O (N2) Loop luar perlu dibandingkan N-1 kali, dan loop dalam perlu dibandingkan N kali.
2. Pilih penyortiran
Ide Algoritma: Pilih kembali elemen terkecil dalam array yang akan diurutkan dan menukarnya dengan elemen pada posisi pertama array. Kemudian pilih elemen terkecil dari elemen yang tersisa dan pertukaran dengan elemen di posisi kedua. Jika elemen terkecil adalah elemen dalam posisi itu, bertukar diri dengan dirinya sendiri, dan seterusnya sampai penyortiran selesai.
Contoh Demonstrasi:
Implementasi Algoritma:
untuk (int i = 0; i <array.length; i ++) {int min = i; untuk (int j = i+1; j <array.length; j ++) {if (array [j] <array [min]) {min = j; }} int temp = array [min]; array [min] = array [i]; array [i] = temp; } Kompleksitas Waktu: O (N2) Membutuhkan Perbandingan N2/2 dan Pertukaran N
3. Masukkan penyortiran
Ide Algoritma: Mulai melintasi dari elemen kedua array, bandingkan elemen dengan elemen sebelumnya, jika elemen lebih kecil dari elemen sebelumnya, simpan elemen ke variabel sementara, pindahkan elemen sebelumnya pada gilirannya, dan kemudian masukkan elemen ke posisi yang sesuai. Setelah setiap penyortiran selesai, elemen di sisi kiri indeks harus dipesan, tetapi masih bisa dipindahkan. Untuk array dengan inversi yang lebih sedikit, algoritma yang lebih efisien.
Catatan: Terbalik: 5 3 6 2 Istilah terbalik adalah 5-3 5-2 3-2 6-2
Contoh Demonstrasi:
Implementasi Algoritma:
untuk (int i = 1; i <array.length; i ++) {for (int j = i; j> 0 && array [j] <array [j-1]; j-) {int temp = array [j]; array [j] = array [j-1]; array [j-1] = temp; }}Kompleksitas Waktu: O (N2) Kasus Terburuk N2/2 Perbandingan, Pertukaran Kasus Terbaik N2/2 Perbandingan, 0 Pertukaran
Tiga algoritma penyortiran sederhana di atas (diimplementasikan menggunakan Java) adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.