#include <iostream>
using namespace std;
void swap(int &a,int &b)
{
if(a!=b) //如果a==b,则调用swap函数后会使这个数变为0
{
a^=b;
b^=a;
a^=b;
}
}
void Cocktail_sort(int *unsorted,int len)
{
bool swaped=false;
do
{
for(int i=0;i<len-1;i++)
{
if(unsorted[i]>unsorted[i+1])
{
swap(unsorted[i],unsorted[i+1]);
swaped=true;
}
}
swaped=false;
for(int j=len-1;j>=1;j--)
{
if(unsorted[j]<unsorted[j-1])
{
swap(unsorted[j],unsorted[j-1]);
swaped=true;
}
}
}
while(swaped);
}
int main()
{
int array[]={36,115,24,63,42,21,5,11},i;
int size=sizeof(array)/sizeof(array[0]);
cout<<"排序前:";
for(i=0;i<size;i++)
cout<<array[i]<<" ";
cout<<endl;
Cocktail_sort(array,size);
cout<<"排序后:";
for(i=0;i<size;i++)
cout<<array[i]<<" ";
cout<<endl;
return 0;
}