#include<stdio.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
int sort(int A[],int n)
{
bool flag1,flag2=true;
while(1)
{
flag1=false;
for(int i=1;i<n-1;i+=2)
if(A[i]>A[i+1])
{
flag1=true;
swap(&A[i],&A[i+1]);
}
if(!flag1&&!flag2)
break;
flag2=false;
for(int i=0;i<n-1;i+=2)
if(A[i]>A[i+1])
{
flag2=true;
swap(&A[i],&A[i+1]);
}
if(!flag1&&!flag2)
break;
}
}
int main()
{
int A[10]={2,6,21,5,3,12,33,45,61,8};
sort(A,10);
for(int i=0;i<10;i++)
printf("%d ",A[i]);
}
时间复杂度
平均情况下:O(nlog2n)
最坏情况下:O(nlog2n)
最好情况下:O(n)
空间复杂度:O(1)
稳定性:稳定