經(jīng)典排序算法-雞尾酒排序CocktailSort
雞尾酒排序(改進的冒泡排序),原理是對要排序的數(shù)組進行雙向冒泡排序,雙向冒泡排序又稱為雞尾酒排序。
其示例代碼如下:
#include <IOSTREAM>
using namespace std;
////////雞尾酒排序/雙向冒泡排序(改進的冒泡排序)
void CocktailSort(int *a,int nsize)
{
int tail=nsize-1;
for (int i=0;i<tail;)
{
for (int j=tail;j>i;--j) //第一輪,先將最小的數(shù)據(jù)排到前面
{
if (a[j]<a[j-1])
{
int temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
++i; //原來i處數(shù)據(jù)已排好序,加1

for (j=i;j<tail;++j) //第二輪,將最大的數(shù)據(jù)排到后面
{
if (a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}

tail--; //原tail處數(shù)據(jù)也已排好序,將其減1
}
}
void OutPut(int *b,int nLength)
{
for (int i=0;i<nLength;i++)
{
cout<<b[i]<<'\t';
}
cout<<endl;
}
int main()
{
int nData[]={1,4,2,5,67,86,24,63,676,23,1,3,2,34};

CocktailSort(nData,sizeof(nData)/sizeof(nData[0]));
OutPut(nData,sizeof(nData)/sizeof(nData[0]));
return 1;
}
雞尾酒排序(改進的冒泡排序),原理是對要排序的數(shù)組進行雙向冒泡排序,雙向冒泡排序又稱為雞尾酒排序。
其示例代碼如下:















































