前面章节中所介绍到的三种插入排序算法,其基本结构都采用数组的形式进行存储,因而无法避免排序过程中产生的数据移动的问题。如果想要从根本上解决只能改变数据的存储结构,改用链表存储。

表插入排序,即使用链表的存储结构对数据进行插入排序。在对记录按照其关键字进行排序的过程中,不需要移动记录的存储位置,只需要更改结点间指针的指向。

链表的存储结构用代码表示为:

#define SIZE 100
typedef struct {int rc;//记录项int next;//指针项,由于在数组中,所以只需要记录下一个结点所在数组位置的下标即可。
}SLNode;
typedef struct {SLNode r[SIZE];//存储记录的链表int length;//记录当前链表长度
}SLinkListType;

在使用数组结构表示的链表中,设定数组下标为 0 的结点作为链表的表头结点,并令其关键字取最大整数。则表插入排序的具体实现过程是:首先将链表中数组下标为 1 的结点和表头结点构成一个循环链表,然后将后序的所有结点按照其存储的关键字的大小,依次插入到循环链表中。

例如,将无序表{49,38,76,13,27}用表插入排序的方式进行排序,其过程为:

表插入排序算法及C语言实现(看了无师自通)相关推荐

  1. “神奇“的表插入排序算法

    文章目录 示例代码 时间复杂度: 直接插入排序算法示例如下: 具体可参考书籍: End 说真的,表插入排序算法是我学习插入排序算法中最难理解的算法之一,特意来写博客记录一下,理解思路真的不会写(或许我 ...

  2. 插入法排序c语言程序,插入排序算法及C语言实现

    插入排序算法是所有排序方法中最简单的一种算法,其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据. 直接插入排序是插入排序算法中的一种,采用的方法是: ...

  3. 静态树表查找算法及C语言实现,数据结构算法C语言实现(三十二)--- 9.1静态查找表...

    一.简述 静态查找表又分为顺序表.有序表.静态树表和索引表.以下只是算法的简单实现及测试,不涉及性能分析. 二.头文件 /** author:zhaoyu date:2016-7-12 */ #inc ...

  4. 静态树表查找算法及C语言实现,数据结构 静态树表查找算法

    友情提示:此篇文章大约需要阅读 6分钟55秒,不足之处请多指教,感谢您的阅读. 算法思想 在使用查找表中有n个关键字,表中的每个关键字被查找的概率都是1/n.在等概率的情况下,使用折半查找算法最优. ...

  5. 算法时间复杂度和空间复杂度(看了无师自通)

    算法,即解决问题的方法.同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的. 就比如要拧一个螺母,使用扳手还是钳子是有区别的,虽然使用钳子也能拧螺母,但是没有扳手好用. &q ...

  6. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  7. c语言 静态链表插入排序,数据结构C语言版 表插入排序

    西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...

  8. 数据结构与算法(C语言)

    第一章: 数据结构绪论 1.什么是程序:程序 = 数据结构 + 算法 2.逻辑结构&物理结构的区别用法 基本的目标就是将数据及其逻辑关系存储到计算机的内存中 一:逻辑结构: 逻辑结构是指数据对 ...

  9. 排序算法 | 插入排序算法原理及实现和优化

    插入排序算法是所有排序方法中最简单的一种算法,其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据. 直接插入排序是插入排序算法中的一种,采用的方法是: ...

最新文章

  1. 【机器学习基础】时间序列测试题的40题,看看你对时间序列的了解水平
  2. --------------springMVC的开篇,以及底层执行流程,配置视图解析器,静态资源的访问,流程图,工作原理...
  3. HTML/CSS学习笔记02【表单标签】
  4. Cifar10与ResNet18实战、lenet5、resnet(学习笔记)
  5. 一个java中HashMap和HashSet的应用实例
  6. @Resource kdown
  7. Windows下vim方式操作软件+Gvim使用
  8. Cramer_rule克莱姆法则讲解
  9. c语言社团管理系统实验报告,社团管理系统C语言实现
  10. 计算机文件及文件夹管理实验报告,计算机实验报告
  11. Barrett And Montgomery of Polynomials
  12. 雷电模拟器无法桥接网络解决办法
  13. 水管工游戏(啊哈算法)
  14. OpenGL 游戏开发: 熟悉练习【《OpenGL超级宝典》第二章】
  15. 《Unity Shader入门精要》笔记:基础篇(2)
  16. 论文阅读笔记----《From Easy to Hard: Two-stage Selector and Readerfor Multi-hop Question Answering》
  17. 流媒体分析之rtmp协议srs服务器数据收发
  18. 三农经济的空缺,农业理财平台还能回暖吗?
  19. php使用composer安装目录,Composer基本安装与使用
  20. kali linux 2020虚拟机镜像的安装(详细安装过程及安装包百度云连接)

热门文章

  1. outlook 脱机文件夹_在Outlook 2007中使用搜索文件夹节省时间
  2. 国内两个JS加密平台,加密JS代码效果对比
  3. MOOG驱动器维修DM2020穆格伺服驱动器维修
  4. windows出现蓝屏解决方法
  5. CNN 评CES 14大最酷科技产品 | 新智元专访度秘总经理景鲲
  6. 深度学习 强化学习 迁移学习
  7. 买了一台NAS单网口,蜗牛星际,show 下配置!
  8. img图片加载前显示load图片
  9. 重启d3d11篇02_初始化d3d11
  10. Java的基操,基操(一)