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

插入排序-个人理解

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

插入排序-个人理解

排序算法-插入排序 代码
	int a[6] = { 1, 11, 4, 2, 5, 6 };
	for (int i = 1; i < 6; i++)//第一个数据不用插入,从第二个数据开始
	{
		if (a[i] < a[i - 1])//需要插入
		{
			int temp2 = a[i];//暂存当前要插入的值
			int j;
			for (j = i - 1; j >= 0 && a[j] > temp2; j--)//将当前值前面的值依次后移一位,直到值小于当前值

			{
				a[j + 1] = a[j];
			}
			a[j + 1] = temp2;//插入到正确的位置
		}
		for (int z = 0; z < 6;z++)
		{
			std::cout << a[z] << " ";
		}
		std::cout << std::endl;
	}
运行结果

算法解释

插入排序是将数组中的每一个数与他的前一位进行比较,如果两个数的关系符合条件,则将该位置之前的并且满足条件的数据向后移动;直至找到不符关系的位置A,并且将该数据插入到A的下一位;重复此操作直至整个数组比较完毕;

循环限制

由算法解释可以看出:在第一个循环处,循环的起始位置不能为0,否则在于前一位进行比较时会发生越界;
在第二个循环处:在判断该位置时,前面的数据已经满足顺序排列,所以当发现不符合调整判断时,在此处的下一个位置才是该数据的合适位置;

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

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

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