前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >排序(一):直接插入排序

排序(一):直接插入排序

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 14:45:13
3290
发布2019-01-25 14:45:13
举报

插入排序 插入排序的基本思想是:从初始有序的子集合开始,不断地把新的数据元素插入到一排列有序子集合的合适位置上,使子集合中数据元素的个数不断增多,当子集合等于集合时,插入排序算法结束。常用的插入排序有直接插入排序和希尔排序两种。 直接插入排序

直接插入排序的基本思想是:顺序地把待排序的数据元素按其关键字值的大小插入到已排序数据元素子集合的适当位置。子集合的数据元素个数从只有一个数据元素开始逐次增大。当子集合大小最终和集合大小相同时排序完毕。

直接插入排序是一种稳定的排序算法。

直接插入排序过程:

初始关键字排序:[64] (5)  7   89   6   24

第一次排序结果:[5   64] (7)  89   6   24

第二次排序结果:[5   7   64] (89)  6   24

第三次排序结果:[5   7   64   89] (6)  24

第四次排序结果:[5   6   7    64  89] (24)

第五次排序结果:[5   6   7    24   64  89]

算法实现:

代码语言:javascript
复制
void InsertSort(int data[], int size)
{
	int i, j;
	int temp;
	for (i = 0; i < size - 1; i++)
	{
		temp = data[i + 1];
		j = i;
		while (j > -1 && data[j] > temp)
		{
			data[j + 1] = data[j];
			j--;
		}
		data[j + 1] = temp;
	}
}

说明:排序系列的文章是我自己对排序算法的一个整理,部分文字摘抄自网络或者算法相关书籍,如有涉及版权问题,请联系theonegis@sina.cn。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年11月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档