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语言—冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

可视化冒泡排序算法

冒泡排序法

Java实现冒泡排序

C语言冒泡排序法

冒泡排序

C语言冒泡排序。