算法思想:通过相邻两个数之间的比较和交换,使较小的数逐渐从底部移向顶部(小数上浮), 较大的数逐渐从顶部移向底部(大数下沉),就像水底的气泡一样逐渐向上冒,故而得名。
排序步骤:
(1)比较第一个数与第二个数,若a[0]>a[1],则交换,大数放在a[1]中;然后比较a[1]与a[2]……依次类推,直至第n-1个数和第n个数比较结束为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上,沉到了最底部;
(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置;
(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
说明:
n个数据排序,需要进行n-1轮冒泡排序,第i轮冒泡需要n-i次比较;
使用两重循环控制整个排序过程,外层循环控制比较的轮次,内层循环控制每一轮的比较次数。
例:从键盘上任意输入5个整数,要求按从小到大进行排序并在屏幕上显示出来。(冒泡排序法)
#include "stdio.h"
#define N 5
void main()
{int i,j,temp,a[N];
for(i=0;i scanf("%d",&a[i]); for(i=1;i for(j=0;j if(a[j]>a[j+1]) {temp=a[j];a[j]=a[j+1]; a[j+1]=temp;} for(i=0;i printf("%d ",a[i]); }