雞尾酒排序

雞尾酒排序

也就是定向冒泡排序雞尾酒攪拌排序攪拌排序 (也能夠視做選擇排序的一種變形), 漣漪排序來回排序 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;
}
相關文章
相關標籤/搜索