Artikel ini menjelaskan metode implementasi penyortiran koktail dalam penyortiran pertukaran java. Bagikan untuk referensi Anda. Dengan rincian sebagai berikut:
Penyortiran koktail, yaitu, penyortiran gelembung terarah, penyortiran aduk koktail, aduk penyortiran (juga dapat dianggap sebagai deformasi pemilihan seleksi), penyortiran riak, penyortiran bolak -balik atau penyortiran happy hour, adalah deformasi penyortiran gelembung. Perbedaan antara algoritma ini dan penyortiran gelembung adalah bahwa ketika menyortir, itu diurutkan dalam dua arah dalam urutan.
Berbeda dari penyortiran gelembung:
Penyortiran koktail setara dengan sedikit deformasi penyortiran gelembung. Perbedaannya adalah dari rendah ke tinggi dan kemudian tinggi ke rendah, sedangkan Sort Bubble hanya membandingkan setiap elemen dalam urutan dari rendah ke tinggi. Dia bisa mendapatkan kinerja yang sedikit lebih baik daripada jenis gelembung karena jenis gelembung hanya dibandingkan dari satu arah (dari rendah ke tinggi) dan hanya memindahkan satu item per loop.
Mengambil urutan (2,3,4,5,1) sebagai contoh, penyortiran koktail hanya membutuhkan satu kunjungan ke urutan untuk menyelesaikan penyortiran, tetapi empat kali jika menggunakan penyortiran gelembung. Namun, dalam keadaan urutan yang berantakan, efisiensi penyortiran koktail dan penyortiran gelembung sangat buruk.
Kompleksitas waktu terburuk o (n^2)
Kompleksitas waktu optimal o (n)
Kompleksitas waktu rata -rata o (n^2)
Gambaran dinamis penyortiran koktail adalah sebagai berikut:
Analisis Kode:
Paket com.baoBaotao.test; / *** Sortir penelitian** / Kelas Publik { / *** Sortir koktail klasik* @param array array lewat* / public static void cocatailsort (int [] array) {int length = array.length; // loop length/2 kali untuk (int i = 0; i <panjang/2; i ++) {for (int j = i; j <length-i-1; j ++) {if (array [ j]> array [j+1]) {swap (array, j, j+1); <array [j-1]) {swap (array, j-1, j); statis void cocatailsortflag (int [] array) {int length = array.length; ; = false;}} untuk (int j = panjang-i-1; j> i; j--) {if (array [j] <array [j-1]) {swap (array, j-1, j) ; ditukar masuk b * @param c nomor yang akan dipertukarkan C */ public static void swap (int [] a, int b, int c) {int temp = 0; b] [c]) {temp = a [b]; void printarr (int [] array) {for (int c: array) {System.out.print (c + ""); int [] number = {11,95,45,15,78,84,51,24,12}; cocatailsort (nomor);Analisis Hasil:
11 12 45 15 78 84 51 24 95 11 12 15 24 45 78 51 84 95 11 12 15 24 45 51 78 84 95 11 12 15 24 45 51 78 84 95 ************** * *** 11 12 45 15 78 84 51 24 95 11 12 15 24 45 78 51 84 95 11 12 15 24 45 51 78 84 95
Dapat dilihat bahwa berapa kali koktail diurutkan jauh lebih sedikit daripada jenis gelembung biasa. Hanya perlu 4 kali, dan versi penyortiran koktail logo yang lebih baik hanya membutuhkan waktu 3 kali untuk menyelesaikan penyortiran.
Saya harap artikel ini akan membantu pemrograman Java semua orang.