Rumah >Java >javaTutorial >Isih gelembung Java: analisis beberapa kaedah pelaksanaan biasa
Fahami isihan gelembung Java: beberapa kaedah pelaksanaan biasa, contoh kod khusus diperlukan
冒泡排序(Bubble Sort)算法: 1. 从序列的第一个元素开始,对相邻的两个元素进行比较 2. 如果前一个元素大于后一个元素,则交换这两个元素的位置 3. 对序列中的所有相邻元素进行比较和交换操作,一轮比较后,最大(或最小)的元素将位于序列的末尾(或第一位) 4. 重复步骤1-3,进行多轮的比较和交换操作,直到整个序列有序
3.1 Isih gelembung biasa
Kaedah pelaksanaan ini ialah algoritma isihan gelembung yang paling asas, elemen terbesar (atau terkecil). beratur ke kedudukan yang betul. Berikut ialah contoh kod Java yang sepadan:
public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length <= 1) { return; } for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } }
3.2 Isih gelembung yang dioptimumkan
Semasa setiap pusingan perbandingan, jika tiada operasi pertukaran berlaku, ini bermakna urutan adalah teratur dan algoritma boleh tamat lebih awal. Berikut ialah contoh kod Java yang sepadan:
public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length <= 1) { return; } boolean isSorted = false; for (int i = 0; i < arr.length - 1 && !isSorted; i++) { isSorted = true; for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; isSorted = false; } } } } }
3.3 Isih gelembung yang dipertingkatkan
Semasa setiap pusingan perbandingan, elemen terbesar dan terkecil boleh ditemui pada masa yang sama dan diletakkan pada kedudukan yang betul. Berikut ialah contoh kod Java yang sepadan:
public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length <= 1) { return; } int left = 0; int right = arr.length - 1; while (left < right) { for (int i = left; i < right; i++) { if (arr[i] > arr[i + 1]) { int temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } right--; for (int j = right; j > left; j--) { if (arr[j] < arr[j - 1]) { int temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; } } left++; } } }
Atas ialah kandungan terperinci Isih gelembung Java: analisis beberapa kaedah pelaksanaan biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!