冒泡排序法的基本思想是:
第一:在a[0]到a[N-1]的范围内,依次比较两个相邻元素的值,
若a[J]>a[J+1],则交换a[J]与a[J+1],J的值取0,1,2,……,N-2;经过
这样一趟冒泡,就把这N个数中最大的数放到a[N-1]中.
第二:再对a[0]到a[N-2]的范围内再进行一趟冒泡,又将该范围内的最大值换到了a[N-2]中.
第三:依次进行下去,最多只要进行N-1趟冒泡,就可完成排序.
第四:如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理.
例1:用冒泡排序法对8个整数{6,8,5,4,6,9,3,2}进行从小到大排序.
#include <stdio.h>
int main(void)
{
int i,j,t,a[8];
printf("Please input 8 numbers:\n");
for(i= 0;i<8;i++)
scanf("%d",&a[i]);
for(i= 0;i<8;i++)
for(j= 0;j<8-i-1;j++)
if(a[j]<a[j+1])
{
t= a[j];
a[j]= a[j+1];
a[j+1]= t;
}
for(i= 0;i<8;i++)
printf("%d",a[i]);
return 0;
}版权声明:本文为tingfengx原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。