奇偶排序 是冒泡排序的平行化變體,又稱 Brick Sort。核心邏輯:奇數輪比較奇數索引與其相鄰偶數索引,偶數輪比較偶數索引與其相鄰奇數索引,交替進行直到無交換發生。
陣列:[6, 2, 4, 1, 5, 9]
[2, 6, 1, 4, 5, 9][2, 1, 6, 4, 5, 9][1, 2, 4, 6, 5, 9][1, 2, 4, 5, 6, 9]public class OddEvenSort {
public static void sort(int[] arr) {
boolean sorted = false;
while (!sorted) {
sorted = true;
// 奇數輪:索引 0,2,4... 與右鄰比較
for (int i = 0; i < arr.length - 1; i += 2) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
sorted = false;
}
}
// 偶數輪:索引 1,3,5... 與右鄰比較
for (int i = 1; i < arr.length - 1; i += 2) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
sorted = false;
}
}
}
}
private static void swap(int[] arr, int i, int j) {
int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;
}
}