欢迎来到天天文库
浏览记录
ID:36322202
大小:686.50 KB
页数:26页
时间:2019-05-09
《[工学]数据结构第23讲_插入排序2和交换排序_c》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、10.2插入排序直接插入排序折半插入排序2-路插入排序表插入排序希尔排序4.表插入排序1)基本思想通过改变排序过程中采用的存储结构,减少在排序过程中进行“移动”记录的操作。利用静态链表进行排序,并在排序完成之后,一次性地调整各个记录相互之间的位置,即将每个记录都调整到它们所应该在的位置上。#defineMAXSIZE100//静态链表容量Typedefstruct{RcdTyperc;//记录项intnext;//指针项}SLNode;//表结点类型Typedefstruct{SLNoder[MAXSIZE+1];//0
2、号单元为表头结点intlength;//链表当前长度}SLinkListType;//静态链表类型2)待排记录序列的存储结构3)具体做法首先将静态链表中数组下标为“1”的分量(结点)和表头结点构成一个循环链表,然后依次将下标为“2”至“n”的分量(结点)按记录关键字非递减有序插入到循环链表中。初始状态012345678MAXINT493865977613274910-------i=3012345678MAXINT4938659776132749201------key域next域i=2012345678MAXINT49
3、3865977613274910-------38123650i=4012345678MAXINT49386597761327492310-----9740i=5012345678MAXINT493865977613274923140----i=6012345678MAXINT4938659776132749231504---i=7012345678MAXINT49386597761327496315042--i=8012345678MAXINT493865977613274963150472-7645136227724
4、9384)表插入排序性能分析从表插入排序的过程可见,表插入排序的基本操作仍是将一个记录插入到已排好序的有序表当中。和直接插排序相比,不同之处仅是以修改2n次指针值代替移动记录,排序过程中所需进行的关键字间的比较次数相同。因此表插入排序的时间复杂度仍是O(n2)。4)表插入排序性能分析表插入排序的结果只是求得一个有序链表,则只能对它进行顺序查找,不能进行随机查找,为了能实现有序表的折半查找,尚需对记录进行重新排列。5.希尔排序1)基本思想又称为“缩小增量排序”。先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元
5、素组成的)分别进行直接插入排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序(接近最好情况,效率很高),因此希尔排序在时间效率上比前两种方法有较大提高。312345665499725251321234562525136549971123456132525654997123456132525496597增量3增量2增量1希尔排序过程voidShellInsert(SqList&L,intdk){//一趟希尔插入排序。本算法对直接插入算法作了以下修改://1.前后记录位置的增量是dk,而不是1
6、;//2.L.r[0]只是暂存单元,不是哨兵。当j<=0时,插入位置已找到for(i=dk+1;i<=L.length;++i)if(L.r[i].key0&&(L.r[0].key7、ort(SqList&L,intdlta[],intt){//按增量序列dlta[0..t-1]对顺序表L作希尔排序for(k=0;k8、法分析第10章内部排序10.1排序的基本概念10.2插入排序10.3交换排序10.4选择排序10.5归并排序10.6基数排序10.7各种内部排序方法的比较10.3交换排序1.起泡排序2.快速排序1)起泡排序的基本思想小的浮起,大的沉底具体做法:第一趟:第1个与第2个比较,大则交换;第2个与第3个比较,大则交换,…关键
7、ort(SqList&L,intdlta[],intt){//按增量序列dlta[0..t-1]对顺序表L作希尔排序for(k=0;k8、法分析第10章内部排序10.1排序的基本概念10.2插入排序10.3交换排序10.4选择排序10.5归并排序10.6基数排序10.7各种内部排序方法的比较10.3交换排序1.起泡排序2.快速排序1)起泡排序的基本思想小的浮起,大的沉底具体做法:第一趟:第1个与第2个比较,大则交换;第2个与第3个比较,大则交换,…关键
8、法分析第10章内部排序10.1排序的基本概念10.2插入排序10.3交换排序10.4选择排序10.5归并排序10.6基数排序10.7各种内部排序方法的比较10.3交换排序1.起泡排序2.快速排序1)起泡排序的基本思想小的浮起,大的沉底具体做法:第一趟:第1个与第2个比较,大则交换;第2个与第3个比较,大则交换,…关键
此文档下载收益归作者所有