0


C语言—冒泡排序

C语言排序算法-冒泡排序

从键盘输入的10个整数按从小到大的顺序排序后输出

#include<stdio.h>voidmain(){int n[10]={25,35,68,79,21,13,98,7,16,62};//定义一个大小为10的数组int i, j, temp;for(i =1; i <=9; i++)//外层循环是比较的轮数,数组内有10个数,那么就应该比较10-1=9轮{for(j =0; j <=9- i; j++)//内层循环比较的是当前一轮的比较次数,例如:第一轮比较9-1=8次,第二轮比较9-2=7次{if(n[j]> n[j +1])//相邻两个数如果逆序,则交换位置{
                temp = n[j];
                n[j]= n[j +1];
                n[j +1]= temp;}}}printf("排序过后的数顺序:\n");for(i =0; i <10; i++)printf("%-4d", n[i]);printf("\n");}

运行的结果如下:
在这里插入图片描述

为了更加清晰,准确的理解冒泡排序的过程,现在修改上面的程序,每次排序之后都会进行一次输出。

#include<stdio.h>voidmain(){int n[10]={25,35,68,79,21,13,98,7,16,62};//定义一个大小为10的数组int i, j,k,temp;for(i =1; i <=9; i++)//外层循环是比较的轮数,数组内有10个数,那么就应该比较10-1=9轮{for(j =0; j <=9- i; j++)//内层循环比较的是当前一轮的比较次数,例如:第一轮比较9-1=8次,第二轮比较9-2=7次{if(n[j]> n[j +1])//相邻两个数如果逆序,则交换位置{
                temp = n[j];
                n[j]= n[j +1];
                n[j +1]= temp;}}printf("第%d趟排序完成后的数据排序:\n",i);for(k =0;k <10; k++)printf("%-4d", n[i]);printf("\n");}printf("排序过后的数顺序:\n");for(i =0; i <10; i++)printf("%-4d", n[i]);printf("\n");}

运行结果如下:
第三方图片第三方算法描述
其实很好理解的,就是for循环的嵌套,尤其是理解每一层循环的意思,初学者多研究一下,我在代码区也注释了每一层循环的意思,想要举一反三,就需要下去大量的练习

标签: c语言 排序算法

本文转载自: https://blog.csdn.net/xianming_flag/article/details/110401128
版权归原作者 小白可编程 所有, 如有侵权,请联系我们删除。

“C语言—冒泡排序”的评论:

还没有评论