关于c语言冒泡问题

希望可以详细的介绍一下关于c语言的冒泡问题~~~~再好有个典型例子~~~~3Q

算法思想:通过相邻两个数之间的比较和交换,使较小的数逐渐从底部移向顶部(小数上浮), 较大的数逐渐从顶部移向底部(大数下沉),就像水底的气泡一样逐渐向上冒,故而得名。
排序步骤:
(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<N;i++)
scanf("%d",&a[i]);
for(i=1;i<N;i++)
for(j=0;j<N-i;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("%d ",a[i]);
}
温馨提示:答案为网友推荐,仅供参考