c语言学习2026/10/22
冒泡排序
一:思路
两两比较相邻元素,如果前面的比后面大就交换。一轮下来最大的元素被放到最后
二:示例
#include <stdio.h>
#include <math.h>
int main(void) {
int max;
int a[10];
for (int i=0;i<10;i++) {
scanf("%d",&a[i]);
}
max=a[0];
for (int t=0; t<10-1; t++) {
for (int j=0;j<10-1;j++) {
if (a[j]>a[j+1]) {
max=a[j];
a[j]=a[j+1];
a[j+1]=max;
}
}
}
for (int i=0;i<10;i++) {
printf("%d\n",a[i]);
}
return 0;
}
三:排序主体代码
max=a[0];
for (int t=0; t<10-1; t++) {
for (int j=0;j<10-1;j++) {
if (a[j]>a[j+1]) {
max=a[j];
a[j]=a[j+1];
a[j+1]=max;
}
}
}
四:拆解
for (int j=0;j<10-1;j++) {
if (a[j]>a[j+1]) {
max=a[j];
a[j]=a[j+1];
a[j+1]=max;
}
}
- 将后一个和前一个作比较
- 如果后一个比前一个小
- 则将前一个视为最大值
max=a[j]然后把小的前移a[j]=a[j+1]把大的后移a[j+1]=max
- 随笔练习 2026-10-23
- 求最大公约数以及最小公倍数 2026-10-23
- 一元二次方程求解 2026-10-23
- 冒泡排序 2026-10-22
- 求水仙花数 2026-10-22
- 去掉末尾空格 2026-10-08
- 输入某一时刻,输出下一秒 2026-10-08
- 如何输出字符串位数 2026-09-28
- 实现倒序输出(for循环) 2026-09-28
- 特殊换行代码 2026-09-28
- C 语言中手动遍历字符串的经典写法 2026-09-28