C语言—冒泡排序
Posted 橙子果果
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言—冒泡排序相关的知识,希望对你有一定的参考价值。
C语言冒泡排序
在一个数组中输入需要排序的数,然后将这一串数从大到小排序后输出
#include <stdio.h>
int main()
int a[] = 8,13,12,9,7; //定义一个数组,不给定数组的大小,可以随意加减数组的元素
int len = sizeof(a)/sizeof(a[0]); //定义一个len来计算数组的大小
int i,j;
int tmp;
for(i=0;i<len-1;i++) //外层循环是比较的轮数
for(j=0;j<len-i-1;j++) //内层循环比较次数
if(a[j] > a[j+1]) //顺序排列 如果前数比后数大,则交换位置,否则不交换
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
for(i=0;i<len;i++) //打印输出
printf("%d ",a[i]);
return 0;
运行的结果:
如果想要逆序输出,只需将
if(a[j] > a[j+1]) 中的判断大小方向改变就行。
sizeof(a)/sizeof(a[0])
冒牌排序原理:
第一层循环:因为是两两比较,所以比较的次数是 数组长度-1(len-1)
第二层循环:因为第一层循环每次都会找出一个最大值,然后也是两两比较,所以循环的次数是 数组长度-第一次循环的次数-1(len-i-1)
以上是关于C语言—冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章