- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
核心提示:Point7:基本排序与查找的算法考点精讲1、查找(1)顺序查找
是一种最基本和最简单的查找方法。它的思路是,从表中的第一个元素开始,将给定的值
与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。否则就是表
中没有要找的元素,查找不成功。对于长度为n的有序线性表,在最坏...
Point7:基本排序与查找的算法
考点精讲
1、查找
(1)顺序查找是一种最基本和最简单的查找方法。它的思路是,从表中的第一个元素开
始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为
止。否则就是表中没有要找的元素,查找不成功。对于长度为n的有序线性表,在最坏情
况下,顺序查找需要比较n次。
(2)对于大的线性表来说,顺序查找的效率是很低的。虽然顺序查找的效率不高,但在
下列两种情况下也只能采用顺序查找:
①无序的线性表;
②即使是有序的线性表,如果采用链式存储结构,也只能顺序查找。
-21-(3)二分查找是针对有序表进行查找的简单、有效而又较常用的方法。其基本思想
是:首先选择有序表中间位置的记录,将其关键字与给定关键字k进行比较,若相等,则
查找成功;否则,若k值比该关键字值大,则要找的元素一定在表的后半部分(或称右子
表),则继续对右子表进行二分查找;若k值比该关键字值小,则要找的元素一定在表的前
半部分(左子表),同样应继续对左子表进行二分查找。每进行一次比较,要么找到要查找
的元素,要么将查找的范围缩小一半。如此递推,直到查找成功或把要查找的范围缩小为
空(查找失败)。
(4)显然,仅当有序线性表为顺序存储时才能用二分查找,并且,二分查找的效率要比
顺序查找高得多。可以证明,对于长度为n的有序线性表,在最坏情况下,二分查找只需
要比较log2n次,而顺序查找需要比较n次。
2、排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。常用的排序方法
(1)交换类排序法:
①冒泡排序法,需要比较的次数为n(n-1)/2;
②快速排序法,最坏情况需要比较的次数为n(n-1)/2。
(2)插入类排序法:
①简单插入排序法,最坏情况需要n(n-1)/2次比较;
②希尔排序法,最坏情况需要O(n1.5)次比较。
(3)选择类排序法:
①简单选择排序海最坏情况需要n(n-1)/2次比较;
②堆排序法,最坏情况需要O(nlog2n)次比较。
真题分析
【真题1】下列排序方法中,最坏情况下比较次数最少的是________。(2009年3
月)
A)直接插入排序
B)堆排序
C)冒泡排序
D)简单选择排序
解析:冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为:n(n-
1)/2。而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)
答案:B
【真题2】对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序
方法是________。(2008年4月)
A)直接插入排序
B)堆排序
C)快速排序
D)冒泡排序
-22-解析:排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、
快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序O(n^1.5)、简单选择排序
n(n-1)/2、堆排序O(nlog2n)。
答案:B
【真题3】冒泡排序在最坏情况下的比较次数是________。(2007年9月)
A)n(n-1)/2
B)n/2
C)n(n+1)/2
D)nlog2n
解析:对n个结点的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过n遍的
从前往后的扫描和(n-1)/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
答案:A
【真题4】对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为__
【1】__。(2006年4月)
解析:在冒泡排序中,最坏情况下,需要比较的次数为n(n-1)/2,也就是:
10*(10-1)/2=45。
答案:45
【真题
文档评论(0)