鸡尾酒排序

鸡尾酒排序

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

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

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

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

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

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

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

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

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

示例代码:

#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;
}
相关文章
相关标签/搜索