C語言實現雞尾酒排序

雞尾酒排序算法:

void cocktailSort(int A[], int n){
    int left = 0;
    int right = n - 1;
    while (left != right) {
        
        for (int i = left; i < right; i++) {
            if (A[i] > A[i+1]) {
                swapA(A, i, i+1);
            }
        }
        right--;
        
        for (int i = right; i > left; i--) {
            if (A[i-1] > A[i]) {
                swapA(A, i-1, i);
            }
        }
        left++;
    }
}

調用代碼:

int A[] = {9,7,11,3,4,1,0};
    int n = sizeof(A)/sizeof(int);
    cocktailSort(A,n);
    printfArray(A,n);

其中雞尾酒排序的註釋如下:

// 分類 -------------- 內部比較排序
// 數據結構 ---------- 數組
// 最差時間複雜度 ---- O(n^2)
// 最優時間複雜度 ---- 如果序列在一開始已經大部分排序過的話,會接近O(n)
// 平均時間複雜度 ---- O(n^2)
// 所需輔助空間 ------ O(1)
// 穩定性 ------------ 穩定

參考原文地址:http://www.cnblogs.com/eniac12/p/5329396.html
更多優質文章,可以微信掃碼關注:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章