IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 直接插入排序 C语言实现 -> 正文阅读

[数据结构与算法]直接插入排序 C语言实现

引言

假如在军训期间进行由高到底进行站队时,有一同学小明有事没到,但等他到时已经排好队,教官让他找到合适的地方站进去。当小明找到第五位同学,发现没他高,于是小明站在了该同学前面,后面的同学集体向后移动

基本思想:将一个数插入到有序的数列中

基本思路

  • 直接插入排序是有两层循环嵌套来实现
  • 将数组中的第一个元素看作有序所以
  • 外循环i从数组的第二个元素开始一直遍历到数组最后,并把 i 指向的元素设置为哨兵
  • 内循环j从外循环减一开始往前遍历,直到j<0
  • 判断 j 指向元素与哨兵的关系,若小于哨兵,就使 j 指向的元素向后移动,直到不满足跳出内
  • 循环,把哨兵插入到 j 指向的位置前面

举例

有一数组a,数组中的元素如下:
在这里插入图片描述

第一次:外循环 i 指向 3并当作哨兵,内循环 j 指向 6
在这里插入图片描述

比较 j 指向的元素与哨兵的大小,发现大于哨兵的值,所以使 j 指向的元素向后移动,接着使 j– 发现 j<0 所以不满足内循环条件,跳出内循环,并把哨兵插入到 6 的后面
在这里插入图片描述第二次,外循环 i 指向 7并当作哨兵,内循环 j 指向 6
在这里插入图片描述
比较 j 指向的元素与哨兵的大小,发现小于哨兵的值,i 指向的元素无需移到,并结束内循环

第三次:外循环 i 指向 4并当作哨兵,内循环 j 指向 7
在这里插入图片描述
比较 j 指向的元素与哨兵的大小,67 都比哨兵大,使 6、7 向后移动,直到 j 指向 3 满足小于哨兵,并把哨兵插入到 3 的前面

在这里插入图片描述第四次:把 2 插入到 3 的后面
第五次 : 把 1 插入到 2 的后面

上述步骤即为直接插入排序

代码如下

void InsertSort(int *nums,int numsSize)
{
	int i,j,tmp;

	for (i=1;i<numsSize;i++)
	{
		tmp = nums[i];
		for (j=i-1;j>=0;j--)
		{
			if (tmp < nums[j])
				nums[j+1] = nums[j];
			else
				break;
		}
		nums[j+1] = tmp;    //注意:赋值给 j+1 而不是 j
	}
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:47:48  更:2021-09-04 17:50:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:26:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码