一.插入排序
1.排序介绍
1.就地排序
不需要辅助空间
例子

2.非就地排序
需要辅助空间来装排好序的一组数
3.稳定及非稳定排序
稳定排序
两个关键字相等的元素,排序后相对位置不变
非稳定排序
两个关键字相等的元素,排序后相对位置可能被打乱
例子
冒泡,插入,归并,计数...是稳定的
快排和堆排序是非稳定的:利用空间换时间的方法来变得稳定
2.插入排序
1.三大思想
(1)元素后移+最后插入(分成有序表和无序表)
(2)扑克牌思想:一步一交换
(3)希尔排序:按照步长交换(在利用1 2的某种思想)
2.插入排序
分成有序表和无序表,开始时有序表有1个元素,无序表有n-1个元素,重复n-1排好顺序
3.希尔排序
对比之前的优化:避免在即将拍好序之后突然出现一个极小的数,会造成有序区移动时间过长;可以先按照较小的步长依次排序,然后步长在依次增大

插入排序优点
数量小,插入排序优势大
二.插入代码
.h

.c

main.c

三.排序底层通用代码
.h

.c

