template<typename T>
void bubbleSort(T arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 1; j < n - i; j++) {
if (arr[j] < arr[j - 1]) {
swap(arr[j], arr[j - 1]);
}
}
}
}
template<typename T>
void bubbleSortOptimized(T arr[], int n) {
bool swapped;
do {
swapped = false;
for (int i = 1; i < n; i++) {
if (arr[i] < arr[i - 1]) {
swap(arr[i], arr[i - 1]);
swapped = true;
}
}
n--;
} while(swapped);
}
奇怪的是,测试结果显示,优化后的冒泡性能略低于优化前。
bubble.png