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
更多优质文章,可以微信扫码关注:
这里写图片描述

发布了231 篇原创文章 · 获赞 110 · 访问量 60万+

猜你喜欢

转载自blog.csdn.net/HHL110120/article/details/97898802