鸡尾酒排序

鸡尾酒排序

也就是定向冒泡排序鸡尾酒搅拌排序搅拌排序 (也可以视作选择排序的一种变形), 涟漪排序来回排序 or 快乐小时排序, 是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。

例如对45 ,19, 77, 81, 13, 28, 18, 19, 77进行排序

    从左到右:19,45,77,13,28,18,19,77,81

    从右到左:13,19,45,77,18,28,19,77,81

    从左到右:13,19,45,18,28,18,77,77,81

    从右到左:13,18,19,45,18,28,77,77,81

    从左到右:13,18,19,18,28,45,77,77,81

    从右到左:13,18,18,19,28,45,77,77,81

    这时不再发生交换,排序结束。

示例代码:

#include<iostream>

using namespace std;
int data[10]={8,9,7,6,5,4,3,2,1,0};

int myCocktailSort(int ds[],int length){
    int start=0,end=length-1;
    while(start<end){
        for(int i=start;i<end;i++){
            if(ds[i]>ds[i+1]){
                int temp=ds[i];
                ds[i]=ds[i+1];
                ds[i+1]=temp;
            }
        }
        end-=1;
        for(int j=end;j>start;j--){
            if(ds[j]<ds[j-1]){
                int temp=ds[j];
                ds[j]=ds[j-1];
                ds[j-1]=temp;
            }
        }
        start+=1;
    }
return 0;
}

int main(){    
    myCocktailSort(data,10);
    for(int i=0;i<10;i++)
        cout<<data[i]<<endl;
    getchar();
    return 0;
}

 

 

posted on 2014-03-26 14:26  兵临天下  阅读(235)  评论(0)    收藏  举报

导航