C语言中的冒泡排序法
例题:从终端输入9个数字,然后将它们按照从小到大的顺序输出.
编写程序:
#include<stdio.h>
main()
{
int a[10]; \\定义数组a[0]到a[9]为整型
int i,j,t;
printf("input 10 numbers :\n");
for(i=0;i<10;i++)scanf("%d",&a[i]); \\for循环来实现对数组a的赋值
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("the sorted numbers :\n");
for(i=0;i<10;i++)printf("%d",a[i]); \\这里的for很容易理解了 按照a[0]到a[9]的顺序输出.
printf("\n");
return 0;
}
程序分析:当执行外循环第1次循环时,j=0,然后执行第1次内循环.此时i=0,在if语句中将a[i]和a[i+1]比较,就是将a[0]和a[1]比较.执行第2次内循环时,i=1,a[i]和a[i+1]比较....
执行最后一次内循环时,i=8,a[i]和a[i+1]比较,就是a[8]和a[9]比较.此时最大的数已经是a[9] 所以比较时不需要在动a[9]的位置.第一次外循环结束
当执行第2次外循环时,j=1,开始循环.内循环的继续条件是i<9-j,由于j=1,因此相当于0<8,执行内循环,直到i=7的时候,7<8,就执行了8次内循环,比第一次少了一次,
自然每次的最后一位就不用在进行比较,以此类推.
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步