- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构68课件
练习 网G的邻接矩阵如下,试画出该图,并画出它的一棵最小生成树。 例:设单链表的结点是按关键字从小到大排列的,试写出对此链表进行查找的算法。如果查找成功,则返回指向关键字为x的结点的指针,否则返回NULL。 node *sqsearch(node*head,int x) { node *p=head; while(p!=NULL) { if(xp-key) p=p-link; else if(x==p-key) return p; else { p=NULL; return p; } } } 第八讲 排序 简单排序方法(0(n2)) 插入排序(稳定排序) 选择排序(不稳定排序) 冒泡排序(不稳定排序) 先进排序方法( O(nlogn)) 快速排序(不稳定排序) 归并排序(稳定排序) 堆排序(不稳定排序) 一、时间性能 时间复杂度为 O(nlogn):快速排序、堆排序和归并排序,其中以 快速排序为最好。 时间复杂度为 O(n2):直接插入排序、起泡排序和简单选择排序, 其中以直接插入为最好,特别是对那些对关 键字基本有序的记录序列尤为如此。 时间复杂度为 O(n*d):基数排序。 1. 按平均时间性能来分,有三类排序方法: 2. 当待排序列按关键字顺序有序时,直接插入排序和起泡排序能 达到 O(n) 的时间复杂度,快速排序的时间性能蜕化为 O(n2) 。 3. 简单选择排序、堆排序和归并排序的时间性能不随记录序列中 关键字的分布而改变。 3.5 各种排序方法的综合比较 二、空间性能 指的是排序过程中所需的辅助空间大小。 所有的简单排序方法(包括:直接插入、冒泡和简单选择) 和 堆排序的空间复杂度为 O(1); 快速排序为 O(logn),为递归程序执行过程中,栈所需的辅助 空间; 3. 归并排序所需辅助空间最多,其空间复杂度为 O(n); 4. 链式基数排序需附设队列首尾指针,则空间复杂度为 O(2*rd+n) 三、排序方法的稳定性能 1. 当对多关键字的记录序列进行LSD方法排序时,必须采用稳 定的排序方法。 2. 对于不稳定的排序方法,只要能举出一个实例说明即可。 3. 快速排序、堆排序是不稳定的排序方法。 各种内部排序方法的比较 排序方法 平均时间 最坏情况 最好情况 辅助存储 稳定性 插入排序 O(n2) O(n2) O(n) O(1) 稳定 选择排序 O(n2) O(n2) O(n2) O(1) 稳定 冒泡排序 O(n2) O(n2) O(n) O(1) 稳定 快速排序 O(nlgn) O(n2) O(nlgn ) O(lgn) 不稳定 归并排序 O(nlgn ) O(nlgn) O(nlgn ) O(n) 稳定 堆排序 O(nlgn ) O(nlgn) O(nlgn ) O(1) 不稳定 基数排序 O(d ×n) O(d ×n) O(d ×n) O(n) 稳定 例题解析 设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 试分别写出使用以下排序方法每趟排序后的结果。并说明做了多少次排序码比较。 (1) 直接插入排序;(2) 起泡排序; 【答】(1)直接插入排序 * * 例题解析 设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 试分别写出使用以下排序方法每趟排序后的结果。并说明做了多少次排序码比较。 (1) 直接插入排序;(2) 起泡排序; 【答】(2)起泡排序 * * 对于给定结点的关键字集合K={5,7,3,1,9,6,4,8,2,10}, (1)试构造一棵二叉排序树; (2)求等概率情况下的平均查找长度ASL。 例题解析 7 4 3 1 2 5 9 6 10 8 ASL=(1*1+2*2+3*4+4*3)/10=2.9 以单链表为存储结构,写一个直接选择排序算法。 void selectsort(pointer h) { pointer p,q,r,s,t; t=NUL
文档评论(0)