冒泡排序算法通过多次比较和交换来实现排序,其排序流程如下:
(1)对数组中的各数据,依次比较相邻的两个元素大小。
(2)如果前面的数据大于后面的数据,就交换这两个的数据。经过第一轮的多次比较排序之后,便可把最小的数据排好。
(3)再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组中各数据的顺序。
void BubbleSort(int *a,int len)
{
int i,j,k,temp;
for(i=0;i<len-1;i++)//外层循环(即从数组第一个数据开始)
{
for(j=len-1;j>i;j--)//内循环
{
if(a[j-1]>a[j])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
printf("第%d步排序结果:",i);//输出每步排序结果
for(k=0;k<len;k++)
{
printf("%d",a[k]);
}
printf("\n");
}
}