|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
排序方法是一种重要的、基本的算法。排序的方法很多,冒泡排序法就是其中的一种。冒泡排序法的基本思路是:每次将相邻的两个数比较,将较小的调到前面。若有六个数,9,8,5,4,2,0,第一次先将最前面的两个数8和9对调(见图一)。第二次将第2和第3个数(9和5)对调,如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到最大的数9已经“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已经向上浮起一个位置。经过第一趟(共5次比较与交换)后,已得到最大的数9。
然后进行第二趟比较,对余下的前面5个数(8,5,4,2,0)进行新一轮的比较,以便使次大的数“沉底”。按以上方法进行第二趟比较,。经过这一趟4次比较与交换,得到次大的数8.。
按此规律进行下去,可以推知对6个数要比较5趟,才能使6个数按大小顺序排列。在第1趟中要进行两个数之间的比较共5次,在第二趟过过程中比较4次……第5趟只需比较一次。
如果有n个数,则要进行n-1趟比较。在第一趟中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。
例:
#include <stdio.h>
int main()
{
int a[10]
int i,j,t;
printf("输入十个数:\n");
for(i-0;i<10;i++)
scanf("%d",&a[i]);
printf("\n")
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;};
}
printf("排序后为:\n“);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n")
return 0;
} |
|