2插入排序直接插入排序折半插入排序2-路插入排序表插入排序希尔排序4
表插入排序1)基本思想通过改变排序过程中采用的存储结构,减少在排序过程中进行“移动”记录的操作
利用静态链表进行排序,并在排序完成之后,一次性地调整各个记录相互之间的位置,即将每个记录都调整到它们所应该在的位置上
#defineMAXSIZE100//静态链表容量Typedefstruct{RcdTyperc;//记录项intnext;//指针项}SLNode;//表结点类型Typedefstruct{SLNoder[MAXSIZE+1];//0号单元为表头结点intlength;//链表当前长度}SLinkListType;//静态链表类型2)待排记录序列的存储结构3)具体做法首先将静态链表中数组下标为“1”的分量(结点)和表头结点构成一个循环链表,然后依次将下标为“2”至“n”的分量(结点)按记录关键字非递减有序插入到循环链表中
初始状态012345678MAXINT493865977613274910-------i=3012345678MAXINT4938659776132749201------key域next域i=2012345678MAXINT493865977613274910-------38123650i=4012345678MAXINT49386597761327492310-----9740i=5012345678MAXINT493865977613274923140----i=6012345678MAXINT4938659776132749231504---i=7012345678MAXINT49386597761327496315042--i=8012345678MAXINT493865977613274963150472-76451362277249384)表