前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C语言】冒泡排序的实现

【C语言】冒泡排序的实现

作者头像
YoungMLet
发布2024-03-01 08:57:05
1230
发布2024-03-01 08:57:05
举报
文章被收录于专栏:C++/Linux

冒泡排序

这次给大家分享一个C语言实现冒泡排序法

冒泡排序其实就是设计一个冒泡排序函数将一个整型数组从小到大排序.

例如一个数组arr[10] = {1,5,2,3,6,7,9,8,4,10},要想数组从小到大排序,就要让数组里面每两个相邻的元素比较,所以我们需要写一个循环进行两两比较;而这个过程又需要循环sz - 1次(sz为数组的元素个数),即冒泡的趟数,让这个比较的过程从头开始.

下面来看代码分析:

代码语言:javascript
复制
	void Sort(int arr[],int sz)
	{
		//确定冒泡的趟数
		int i = 0;
		for (i = 0; i < sz - 1; i++)
		{
			int flag = 1;           
			//每一趟冒泡排序--确定比较的次数
			int j = 0;
			for (j = 0; j < sz - 1 - i; j++)
			{
				if (arr[j] > arr[j + 1])
				{
					int tmp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = tmp;
					flag = 0;			
				}
			}
			if (flag == 1)
				break;
		}
	}

优化代码:给定一个变量flag = 1,1为假设这一趟要排序的数据已经有序;每当进入if条件就代表本趟排序的数据不完全有序,所以会将flag = 0;当某一趟数组已经有序,就不会进入if条件,即本趟数组已经有序,跳出循环,在某个程度上也提高了代码的效率.

代码语言:javascript
复制
	int main()
	{
		int arr[] = {452,89,41,22,1,0,369,5,8};
		int sz = sizeof(arr) / sizeof(arr[0]);
		//对arr进行排序,排成升序
		Sort(arr,sz);    //冒泡排序函数
		int i = 0;
		for (i = 0; i < sz; i++)
		{
			printf("%d ",arr[i] );
		}
		return 0;
	}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 冒泡排序
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档