#include <iostream>
using namespace std;
//双向冒泡排序
//鸡尾酒排序
void CocktailSort(int a[],int n)
{
int i;
int left=0;
int right=n-1;
bool change=true;
while(change)
{
change=false;
for(i=left;i<right;i++)
{
if(a[i]>a[i+1])
{
change=true;
swap(a[i],a[i+1]);
}
}
right--;
for(i=right;i>left;--i)
{
if(a[i]<a[i-1])
{
change=true;
swap(a[i],a[i-1]);
}
}
left++;
}
}
void print(int a[],int n)
{
for(int i=0; i<n; i++)
{
cout<<a[i]<<" ";
}
cout << endl;
}
void main()
{
int a[] = {1,3,6,8,0,5,7};
cout << "排序前:";
print(a,sizeof(a)/sizeof(a[0]));
int n=sizeof(a)/sizeof(a[0]);
CocktailSort(a,n);
cout << "排序后:";
print(a,sizeof(a)/sizeof(a[0]));
}
【基础排序】双向冒泡排序
最新推荐文章于 2019-12-28 18:03:38 发布