栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现冒泡排序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现冒泡排序

以升序为例,外层循环为趟数,共n-1趟(n为数组长度)。每一趟从第一个元素开始,与下一个元素比较。对于某个元素若大于下一元素,则交换。这样第一趟必然得到最大元素,即最大元素归位;第二趟必然得到第二大元素,即第二大元素归位…所以每趟只需比较n-(i+1)次,因为最大的i+1个已经归位。每次都将没排好的最大排好,故称冒泡排序。

#include 

//冒泡排序法
void main()
{
	int arr[] = {89,61,55,36,35,10,1};
	int temp = 0;
	int n = 6;
	for (int i = 0; i < n-1; i++)		//外层循环为趟数
	{
		for (int j = 0; j < n - i - 1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j + 1] = temp;
			}
		}
		printf("第%d趟结果:",i);
		for (int k=0;k<7;k++)
		{
			printf("%d  ",arr[k]);
		}
		printf("n");
	}
}

时间复杂度分析:第 i 趟需要比较 n-(i+1) 次,共n-1趟(i从0到n-1)。总共需要比较(n-1)n/2次。故时间复杂度为O(n^2)。

算是重拾冒泡排序法吧,今年已经大三了。大一就学了冒泡排序,那时应是一知半解,或者说曾经懂过。当时理解了后,为了快,就像背公式一样背下来了。时隔两年,再想着使用时,发现已经不会,而网上的冒泡排序C语言也有很多种,一时不知哪个是正确的。乃重拾原理,记于此,不相忘。

参考博客:https://blog.csdn.net/qq_39741605/article/details/80821595

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/433241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号