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

排序入门到入土(C语言)

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

排序入门到入土(C语言)

目录

选择排序

冒泡排序


先做好排序,现在就跟着我一起学习排序吧~

选择排序

选择排序作为最好想到的排序算法,也为我们打开了排序的大门,首先来看看选择排序的原理

从一组数据头或尾开始,和每一个数据比较,按照大小顺序依次放置  没错,就是这么简单

下面我们来看看实现选择排序的代码

	int number[4] = { 22,33,44,55 };


	for (int a = 1; a <= 4; a++)//第一重循环,用来确定第几个数
	{
		for (int b = a; b <= 4; b++)//二重循环,用来和后面的数字比较
		{
			if (number[b] > number[a])//判断大小
			{
				int t = number[a];
				number[a] = number[b];
				number[b] = t;//交换位置
			}
		}
	}
	for (int m = 1; m <= 4; m++)//遍历数组
	{
		printf("%d  ", number[m]);
	}

这里给大家藏了一个小bug,大家可以找找看哦

大家能看出时间复杂度是多少么?

选择排序并不具备稳定性,在相同大小的数据时并不能保留数据的顺序,下一次,我们就来实现具有稳定性的冒泡排序。

懊恼没有半分意义,珍惜现在的每分每秒

博客持续更新中,啊追也在和大家一起学习

冒泡排序

回到上次的bug,因为数组定义时,第一次number[4],4的意思为数组长度,下面用到的时候是从number[0]开始到number[3]。

现在呢,我们开始冒泡排序的讲解。

首先是冒泡排序是怎么进行的(比如从小到大排序)

我们先取数组中第一个数开始依次与后面的数进行比较,如果比后面的数大,则更换位置。

2 1 3 9 4 6 3

第一次冒泡排序后变成

1 2 3 4 6 3 9

第二次

1 2 3 4 3 6 9

第三次

1 2 3 3 4 6 9

核心为比较两个数,取大的数,并依次往后比较并交换位置。相比选择排序,用时较短,且不会改变相同大小数字的顺序。

C语言代码为

//正在施工中

懊恼没有半分意义,珍惜现在的每分每秒

博客持续更新中,啊追也在和大家一起学习

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

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

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