氣泡排序透過重複遍歷陣列,比較相鄰元素並交換位置,將較大元素逐步「浮」至陣列末端。優化版本加入旗標,若某輪無交換則提前結束。
void BubbleSort(int* arr, int len) {
bool swapped = true;
do {
swapped = false;
for (int i = 0; i < len - 1; ++i) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
}
適合小規模資料或教學示範;大量資料建議改用快速排序、合併排序等 O(n log n) 演算法。