冒泡排序是最简单的排序方法,理解起来容易。虽然它的计算步骤比较多,不是最快的,但它是最基本的,初学者一定要掌握。
冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。
以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。
下面是实例。
//设计一个 C程序 使用冒泡排序法对下列数组进行排序
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,tmp;
int data[8]={16,25,39,28,12,8,45,63};
int len=sizeof(data)/sizeof(data[0]);
printf("冒泡排序法:\n原始数据为:");
for(i=0;i<len;i++)
printf("%3d",data[i]);
printf("\n");
for(i=len-1;i>=0;i--)
{
for(j=0;j<i;j++)
{
if(data[j]>data[j+1])
{
tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
printf("第%d次排序后的结果是:",len-i);
for(j=0;j<len;j++)
printf("%3d",data[j]);
printf("\n");
}
printf("最终排序的结果是:");
for(i=0;i<len;i++)
printf("%3d",data[i]);
printf("\n");
getchar();
return 0;
}