7-2 冒泡法排序之过程 (15分)
发布日期:2022-02-17 09:51:27 浏览次数:10 分类:技术文章

本文共 828 字,大约阅读时间需要 2 分钟。

7-2 冒泡法排序之过程 (15分)

本题要求使用冒泡法排序,将给定的n个整数从小到大排序后输出,并输出排序过程中每一步的中间结果。

冒泡排序的算法步骤描述如下:

第1步:在未排序的n个数(a[0]〜 a[n−1])中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,数组中的最大元素“冒泡”到a[n−1];

第2步:在剩下未排序的n−1个数(a[0] 〜 a[n−2])中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[n−2]中的最大元素“冒泡”到a[n−2];

……

第i步:在剩下未排序的n−k个数()中,从a[0]起,依次比较相邻的两个数,若邻接元素不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[n−i]中的最大元素“冒泡”到a[n−i];

……

第n−1步:在剩下未排序的2个数(a[0] 〜a[1])中,比较这两个数,若不符合次序要求,则对它们进行交换。本次操作后,a[0] 〜 a[1]中的最大元素“冒泡”到a[1]。

输入格式:

输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:

在每一行中输出排序过程中对应步骤的中间结果,即每一步后a[0]〜 a[n−1]的值,相邻数字间有一个空格,行末不得有多余空格。

输入样例:

5

8 7 6 0 1

输出样例:

7 6 0 1 8

6 0 1 7 8
0 1 6 7 8
0 1 6 7 8

#include
int main (){
int a[10],n,i,j,temp,x; scanf("%d",&n); for(i=0;i
a[j+1]){
temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } for(x=0;x

转载地址:https://blog.csdn.net/qq_43828852/article/details/106463308 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:7-8 求矩阵的最大值(设惟一) (15分)
下一篇:6-3 递归求阶乘和 (15分)

发表评论

最新留言

很好
[***.229.124.182]2024年04月23日 09时38分20秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章