也就是定向冒泡排序, 鸡尾酒搅拌排序, 搅拌排序 (也能够视做选择排序的一种变形), 涟漪排序, 来回排序 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; }