排序算法《一》冒泡排序



学了这么久的C语言发现C语言的算法非常的多,特别是排序算法,在编程中的应用非常广泛,如:冒泡排序、选择排序、希尔排序 等等,

今天向大家介绍排序中的一种最基本的排序,“冒泡排序”

冒泡排序是排序中非常基本的排序,也是非常重要的排序

因为排序时像水泡一样一个一个向上冒故此得名

基本思想:

将下面的数据按照从小到大的顺序排列

27 36 32 18 5


排序前:

27 36 32 18 5


第一趟:

第1次:27<36不变

27 36 32 18 5


第2次:36>32交换

27 32 36 18 5


第3次:36>18交换

27 32 18 36 5


第4次:36>5交换

27 32 18 5 36


第二趟:

第1次:27<32不变

27 32 18 5 36


第2次:32>18交换

27 18 32 5 36


第3次:32>5交换

27 18 5 32 36


第三趟:

第1次:27>18交换

18 27 5 32 36


第2次:27>5交换

18 5 27 32 36


第四趟:

第1次:18>5交换

5 18 27 32 36


排序后的结果:

5 18 27 32 36


算法代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int a[] = { 27, 36, 32, 18, 5};


	int temp;//中间变量
	int i, j;//用于for循环

	printf("排序前的数据:");

	for (i = 0; i < sizeof(a) / sizeof(int); i++)//打印排序前的数据
	{
		printf("%d ", a[i]);
	}

	printf("\n");//换行

	for (i = 0; i< sizeof(a) / sizeof(int) - 1; i++)//排序的趟数
	{
		for (j = 0; j < sizeof(a) / sizeof(int) - i - 1; j++)//每趟的次数
		{
			if (a[j]>a[j + 1])//当后一个数小于前一个数时
			{
				temp = a[j];//交换两个数
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
		}
	}

	printf("\n排序后的数据:");

	for (i = 0; i < sizeof(a) / sizeof(int); i++)//打印排序后的数据
	{
		printf("%d ", a[i]);
	}

	printf("\n\n");//换行

	system("pause");
}

执行结果:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值