冒泡法排序之过程 清疚 2023-10-11 15:59 27阅读 0赞 本题要求使用冒泡法排序,将给定的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\[n−i\])中,从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 所谓冒泡排序:就是相邻的两个数字进行比较,按照一定的次序进行排列,如果最后的次序是从小到大的次序,**那么每一次的排列都会将你所排列的数据的最大值排在你所排列的数据的最后面**。**一般使用双循环来实现。**详细的排序过程可以查看网址:[三分钟彻底理解冒泡排序 - stone1234567890 - 博客园 (cnblogs.com)][- stone1234567890 - _ _cnblogs.com] 详细代码编写: \#include<stdio.h> int main() \{ int n = 0,temp=0; int a\[10\] = \{ 0 \}; scanf("%d", &n); for (int i = 0;i < n;i++) \{ scanf("%d", &a\[i\]); \} if (n == 1) \{ printf("%d", a\[0\]);//因为排序肯定要两个数以上,一个数是无法排序的,所以单独拿出来考虑 \} for (int i = 0;i < n - 1;i++) \{//外循环是我们要排列的次数 //比如我们输入5个数,那么我就需要排列4次,当把四个数排列好,最后一个数的位置也就确定了 for (int j = 0;j < n - 1 - i;j++) \{//内循环进行比较,排序。 //j=n-1-i n-1为下标(我们要用下标来计算) //n-1-i的意思是当我们外循环一次结束的时候,我们就排列好了一个数据,而下一次排序就不用排列这个数据了 if (a\[j\] > a\[j + 1\]) \{ temp = a\[j+1\]; a\[j+1\] = a\[j\]; a\[j\] = temp; \} \} for (int i = 0;i < n;i++) \{ if (i == 0) printf("%d", a\[i\]); else printf(" %d", a\[i\]); if (i == n - 1) printf("\\n"); \} \} return 0; \} [- stone1234567890 - _ _cnblogs.com]: https://www.cnblogs.com/bigdata-stone/p/10464243.html
相关 冒泡法排序之过程 本题要求使用冒泡法排序,将给定的n个整数从小到大排序后输出,并输出排序过程中每一步的中间结果。 冒泡排序的算法步骤描述如下: 第1步:在未排序的n个数(a\[0\]〜 a\ 清疚/ 2023年10月11日 15:59/ 0 赞/ 28 阅读
相关 冒泡排序法 冒泡排序法 1. 算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元 爱被打了一巴掌/ 2022年10月14日 14:56/ 0 赞/ 217 阅读
相关 交叉排序之冒泡法 include<stdio.h> int main() { int a[1000]; int n,i,j,t; 待我称王封你为后i/ 2022年09月25日 03:22/ 0 赞/ 146 阅读
相关 冒泡排序法 package com.wdl.day07; import java.util.Arrays; / @创建人 wdl @创建时间 r囧r小猫/ 2022年09月04日 01:45/ 0 赞/ 252 阅读
相关 java-之冒泡排序法 package cn.zhangheng; / 冒泡排序法 @author zhangheng @date 2016年8月9日下午11:45: 「爱情、让人受尽委屈。」/ 2022年07月19日 05:09/ 0 赞/ 151 阅读
相关 冒泡排序法 /冒泡排序法/ include<stdio.h> include<time.h> define N 10 main() { 电玩女神/ 2022年06月14日 08:57/ 0 赞/ 285 阅读
相关 冒泡排序法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</ 红太狼/ 2022年05月20日 02:59/ 0 赞/ 297 阅读
相关 冒泡排序法 根据冒泡排序法将数组中的数从大到小排列 第一次代码: include<stdio.h> include<stdlib.h> / 冒泡排序法 / 亦凉/ 2022年04月15日 00:56/ 0 赞/ 275 阅读
相关 冒泡排序法 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pbmlv 小鱼儿/ 2021年11月02日 14:50/ 0 赞/ 384 阅读
还没有评论,来说两句吧...