对冒泡排序做了点改进,但不太会选数据测试心里没底儿.....劳烦大神指点下。
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
int finish=n; //已排序的最小下标
int index=n; //最近一次交换时,其中后一项的下标
int temp;
while(finish>1)
{
for(i=0;i+1<finish;i++)
{
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
index=i+1;
}
}
if(index<finish)
finish=index;
else
finish=0;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}