课本源码部分
第10章 内部排序 - 表插入排序
——《数据结构》-严蔚敏.吴伟民版
源码使用说明 链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑
习题集全解析 链接☛☛☛ 《数据结构题集》习题解析合辑
本源码引入的文件 链接☛ StaticLinkedListType.c
文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲10 内部排序\04 TInsertSort
概述
表插入排序借助静态链表存储结构实现。表插入排序的基本操作仍是将一个记录插入到已完成排序的有序表中,和直接插入排序相比,不同之处仅是以修改2n次指针值代替移动记录,排序过程中所需进行的关键字间的比较次数相同。因此表插入排序的时间复杂度仍是O(n^2)。
解析
表插入排序的结果只是求得一个有序链表,只能对它进行顺序查找,不能进行随机查找。为了能实现有序表的折半查找,需要对记录进行重新排列。重排记录的做法:顺序扫描有序链表,将链表中第i个结点移动至数组的第i个分量中。
源码
文件一 ☛ TInsertSort.h
文件二 ☛ TInsertSort.c
文件三 ☛ TInsertSort-main.c (测试文档)
文件四 ☛ TestData.txt(排序表测试数据)
测试结果展示