怎么做
- 题面里的虚线方框就是要填的空
- 点候选项,它会填进当前高亮的那个空
- 点已填好的空,可以把选项取回来重选
- 全部填满后「提交」才会亮起
卡住了就点右下角的 👩🏫 问 AI 老师,她会给提示但不直接给答案。
冒泡一趟走完是什么样
冒泡第 1 趟:相邻两个比,前面的大就交换
1
4
2
5
a[0]
a[1]
a[2]
a[3]
一趟下来,最大的 5 沉到了最后
冒泡排序(从小到大):从头开始,相邻两个比一比,前面的大就交换;这样走完一趟,最大的数就「沉」到了最后。下一趟最后一个不用管了,再对剩下的做一遍……n 个数做 n - 1 趟。写成两层循环:
#include <stdio.h>
int main(void) {
int a[5] = {6, 3, 9, 1, 5};
int i, j, k, t, cnt = 0;
for (i = 0; i < 4; i++) { /* 第 i + 1 趟,一共 5 - 1 趟 */
for (j = 0; j < 4 - i; j++) { /* 已经沉底的 i 个不用再比 */
cnt++;
if (a[j] > a[j + 1]) {
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
for (k = 0; k < 5; k++)
printf("%d ", a[k]);
printf("\n");
}
printf("%d\n", cnt);
return 0;
}
程序每趟结束打印一次数组。第 1 趟后是【0】,第 2 趟后是【1】,最后一行输出的比较次数是【2】。
请登录后作答。
去登录
👩🏫
AI
💬 题目评论
🔒
登录并作答后可看讨论