Kuasai kemahiran dan pengalaman praktikal Java bubble sort
1. Pengenalan
Dalam bidang komputer, algoritma adalah pengetahuan asas yang sangat penting. Sebagai salah satu algoritma pengisihan yang paling asas dan mudah, pengisihan gelembung adalah perkara yang mesti dimiliki untuk memulakan algoritma pembelajaran. Artikel ini akan memperkenalkan prinsip asas pengisihan gelembung, serta beberapa teknik dan pengalaman praktikal untuk membantu pembaca menguasai pengisihan gelembung dengan lebih baik dalam bahasa Java.
2. Prinsip asas isihan gelembung
Isih gelembung ialah algoritma yang mencapai pengisihan dengan menukar dua elemen bersebelahan berulang kali. Langkah-langkah khusus adalah seperti berikut:
3. Kemahiran mengisih gelembung dan pengalaman praktikal
Dalam aplikasi praktikal, kami boleh menggunakan kemahiran dan pengalaman berikut untuk meningkatkan kecekapan dan kebolehbacaan pengisihan gelembung.
Gunakan pembolehubah Boolean untuk pengoptimuman: Satu ciri isihan gelembung ialah apabila tiada pertukaran berlaku semasa pusingan perbandingan, ini bermakna tatasusunan sudah teratur dan pengisihan boleh ditamatkan lebih awal. Kita boleh menggunakan pembolehubah Boolean swapped
untuk merekodkan sama ada pertukaran telah berlaku, dengan itu menyimpan perbandingan yang tidak perlu. swapped
来记录是否发生了交换,从而节省不必要的比较。
boolean sorted = false; while (!sorted) { sorted = true; for (int i = 0; i < array.length - 1; i++) { if (array[i] > array[i + 1]) { int temp = array[i]; array[i] = array[i + 1]; array[i + 1] = temp; sorted = false; } } }
优化循环次数:在每一轮的比较中,实际上最大的元素已经被“冒泡”到了最后的位置,所以下一轮的循环只需要对前面length - 1
for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } }
public static <T extends Comparable<T>> void bubbleSort(T[] array) { // 冒泡排序的具体实现 }
public class BubbleSort { public static void bubbleSort(int[] array) { boolean sorted = false; while (!sorted) { sorted = true; for (int i = 0; i < array.length - 1; i++) { if (array[i] > array[i + 1]) { int temp = array[i]; array[i] = array[i + 1]; array[i + 1] = temp; sorted = false; } } } } public static void main(String[] args) { int[] array = {5, 3, 8, 4, 2}; bubbleSort(array); System.out.println(Arrays.toString(array)); } }
rrreee
Kod contoh di atas boleh mengisih tatasusunan integer dan mengeluarkan hasilnya. 5. Ringkasan🎜🎜Dengan mempelajari prinsip asas, teknik dan pengalaman praktikal pengisihan gelembung, kita boleh menguasai pelaksanaan pengisihan gelembung dalam bahasa Jawa dengan lebih baik. Walaupun pengisihan gelembung adalah mudah, ia juga merupakan bahagian penting dalam pembelajaran algoritma. Saya harap artikel ini akan membantu pembaca dan dapat memperdalam pemahaman mereka tentang pengisihan gelembung dan menerapkannya secara fleksibel dalam amalan. 🎜Atas ialah kandungan terperinci Petua pengisihan gelembung Java dan perkongsian pengalaman praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!