比如有一组数: 6,5,4,2,8,9,1,3,7
如果是从小到大的排列顺序的话:应该是1,2,3,4,5,6,7,8,9。是人就懂。
冒泡法是这样的:首先比较第一个和第二个,即6和5 ,6比5 大,交换两个数位置,变为5,6,4,2。。。。。。
然后比较第二个和第三个,即6和4,6比4 大,交换位置,变为5,4,6,2,。。。。。。
同理,继续比较后面的数,很像冒泡泡,所以称为冒泡法。这样比较一趟后变为
5,4,2,6,8,1,3,7,9。
然后再从头开始再一趟的比较,直到排列完成,共需做n趟,这里是9趟。
还不明白就看看程序:
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,t,n,temp;
int a[30];
/*用数组存储要排列的数,最大为30个数,自己定义*/
printf("输入要排列的数字个数:");
scanf("%d",&n);
for(t=0;t<n;t++)
scanf("%d",&a[t]);
/***开始排列****/
for(i=0;i<n;i++)
for(j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];a[j]=a[j+1];a[j+1]=temp;/*交换位置*/
}
}
/*排列完成,输出*/
for(i=0;i<n;i++)
printf("%2d",a[i]);
prinf("\n");
getch();
}
}