冒泡排序采用泡泡的想法,每次把无序序列中一个最小的交换到顶端,完成排序。若一趟没有发生交换,则说明序列已经有序了,可以停止排序,节约时间。
#include<stdio.h>
void bubble_sort(int *a,int length)
{
int i,j,temp;
int conter;//排序终止的标识
for(i=0;i<length;i++)
{
conter=0;
for(j=0;j<length-i-1;j++)
{
if(a[j]<a[j+1])//将较小的放在数组右边
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
conter=1;//标识数组存在交换
}
}
if(conter==0)//数组已经有序就停止排序
return;
}
}
int main()
{
int i;
int a[10]={10,5,9,8,7,1,9,4,12,24};
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\nresult:\n");
bubble_sort(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}