C语言之冒泡排序

 C语言冒泡排序

冒泡排序(Bubble Sort),是一种较简单的排序算法。

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

比如16,3,33,14,6用冒泡排序从小到大排列

第一个元素16会一个个的和后面的数字比较,到3的时候,比较16 和3 的大小,16 比3大,所以交换16 和3 的位置,交换之后16 再和33比较,16比33 小, 不满足这个条件语句if(a[i] > a[i+1])所以不再交换位置。开始第二个元素和后面的元素比较,以此类推。。。

冒泡排序需要两次循环,外循环是要循环比较的元素次数,n个元素比较n-1次,内循环是每个元素需要向后比较的次数,第一个元素需要n-1次,第二个元素就需要(n-1)-1次,以此类推,最内层是if语句,用来比较每两个元素的大小。

#include<stdio.h>

int main(void)

{
	int a[5] = {16,3,33,14,6};
	int i,j;
	for(j = 1;j < 5;j++)
	{
		for(i = 0;i < 5-j ;i++)
		{
			if(a[i] > a[i+1])
			{
				int b;
				b = a[i];
				a[i] = a[i+1];
				a[i+1] = b;
			}

		}
		
	}
	printf("排序后:");
	for(int k = 0; k < 5;k++)
	{
		printf("%d ",a[k]);
	}
	printf("\n");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值