冒泡排序(C)

template
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
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);
}

奇怪的是,测试结果显示,优化后的冒泡性能略低于优化前。


冒泡排序(C)_第1张图片
bubble.png

你可能感兴趣的:(冒泡排序(C))