数据结构第10章排序练习及答案
最完整的数据结构1800题包括完整答案第10章 排序答案
1 3 C (n − 2) + 3 C(n)=
n=2 n=3 n>3
通过逐步递推,可以得到:C(n)=3n/2-2。显然,当 n>=3 时,2n-3>3n/2-2。事实上, 3n/2-2 是解决这一问题的比较次数的下限。 6. 假定待排序的记录有 n 个。由于含 n 个记录的序列可能出现的状态有 n!个,则描述 n 个 记录排序过程的判定树必须有 n!个叶子结点。因为若少一个叶子,则说明尚有两种状态没 h-1 有分辨出来。我们知道,若二叉树高度是 h,则叶子结点个数最多为 2 ;反之,若有 u 个
59.1C 59.2A 59.3D 59.4B 59.5G
60.1B 60.2C 60.3A
61.1B 61.2D 61.3B 61.4C 61.5F
部分答案解释如下: 18. 对于后三种排序方法两趟排序后,序列的首部或尾部的两个元素应是有序的两个极值, 而给定的序列并不满足。 20. 本题为步长为 3 的一趟希尔排序。 24.枢轴是 73。 49. 小根堆中,关键字最大的记录只能在叶结点上,故不可能在小于等于 n/2 的结点上。 64. 因组与组之间已有序, 故将 n/k 个组分别排序即可, 基于比较的排序方法每组的时间下 界为 O(klog 2 k),全部时间下界为 O(nlog 2 k)。 二、判断题 1.√ 14. √ 27. √ 2.× 15. √ 28. × 3.× 16. × 29. × 4.× 17. × 30. × 5.× 18. × 31. √ 6.× 19. × 7.× 20. × 8.× 21. × 9.× 22. × 10. × 23. × 11. × 24. × 12. × 25. √ 13. × 26. ×
第 10 章 排序(参考答案)
数据结构(C语言版)9-12章练习 答案 清华大学出版社
9-12章数据结构作业答案第九章查找选择题1、对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( A )A.(n+1)/2 B. n/2 C. n D. [(1+n)*n ]/22. 下面关于二分查找的叙述正确的是 ( D )A. 表必须有序,表可以顺序方式存储,也可以链表方式存储B. 表必须有序且表中数据必须是整型,实型或字符型C. 表必须有序,而且只能从小到大排列D. 表必须有序,且表只能以顺序方式存储3. 二叉查找树的查找效率与二叉树的( (1)C)有关, 在 ((2)C )时其查找效率最低(1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置(2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。
4. 若采用链地址法构造散列表,散列函数为H(key)=key MOD 17,则需 ((1)A) 个链表。
这些链的链首指针构成一个指针数组,数组的下标范围为 ((2)C) (1) A.17 B. 13 C. 16 D. 任意(2) A.0至17 B. 1至17 C. 0至16 D. 1至16判断题1.Hash表的平均查找长度与处理冲突的方法无关。
(错)2. 若散列表的负载因子α<1,则可避免碰撞的产生。
(错)3. 就平均查找长度而言,分块查找最小,折半查找次之,顺序查找最大。
(错)填空题1. 在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键码值20,需做的关键码比较次数为 4 .算法应用题1. 设有一组关键字{9,01,23,14,55,20,84,27},采用哈希函数:H(key)=key mod 7 ,表长为10,用开放地址法的二次探测再散列方法Hi=(H(key)+di) mod 10解决冲突。
要求:对该关键字序列构造哈希表,并计算查找成功的平均查找长度。
2. 已知散列表的地址空间为A[0..11],散列函数H(k)=k mod 11,采用线性探测法处理冲突。
【免费下载】数据结构第10章排序练习及答案
9.1 选择题 1.从末排序的序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放 在排序序列的合适位置,该排序方法称为( )排序法。 A)插入 B)选择 C)希尔 D)二路归并 【答案】A 2.下面各种排序方法中,最好情况下时间复杂度为 O(n)的是( ) A)快速排序 B)直接插入排序 C)堆排序 D)归并排序 【答案】B 3.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,无序序列的变化情 况如下: 25 84 21 47 15 27 68 35 20 20 15 21 25 47 27 68 35 84 15 20 21 25 35 27 47 68 84 15 20 21 25 27 35 47 68 84 则所采用的排序方法是( ) A)选择排序 B)希尔排序 C)归并排序 D)快速排序 【答案】D 4.下面给出的四种排序法中,( )排序是不稳定排序法。 A)插入 B)冒泡 C)二路归并 D)堆 【答案】D 5.快速排序方法在( )情况下最不利于发挥其长处。 A)要排序的数据量太大 B)要排序的数据中含有多个相同值 C)要排序的数据已基本有序 D)要排序的数据个数为奇数 【答案】C 6.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基 准得到的一次划分结果为( ) A)38,40,46,56,79,84 B)40,38,46,79,56,84 C)40,38,46,56,79,84 D)40,38,46,84,56,79 【答案】C 7.对记录的关键码{50,26,38,80,70,90,8,30,40,20}进行排序,各趟排序结束 时的结果为: 50,26,38,80,70,90 ,8,30,40,20 50,8,30,40,20,90,26,38,80,70 26,8,30,40,20,80,50,38,90,70 8,20,26,30,38,40,50,70,80,90 其使用的排序方法是( ) A)快速排序 B)基数排序 C)希尔排序 D)归并排序 【答案】C
数据结构第10章 习题答案
1.下列排序算法中,其中( D )是稳定的。
A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序2.有一组数据(15,9,7,8,20,-1,7,4)用快速排序的划分方法进行一趟划分后数据的排序为 ( A )(按递增序)。
A.下面的B,C,D都不对。
B.9,7,8,4,-1,7,15,20C.20,15,8,9,7,-1,4,7 D. 9,4,7,8,7,-1,15,203.下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是:( B )。
A. 直接插入排序B. 快速排序C. 直接选择排序D. 堆排序4.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( D )方法最快。
A.起泡排序 B.快速排列 C.Shell排序 D.堆排序 E.简单选择排序5.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( A )排序法。
A. 插入B. 选择C. 希尔D. 二路归并6. 在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的末尾,该排序方法是( A )。
A. 选择B. 冒泡C. 插入D. 堆7. 若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行( C )次比较。
A. 3B. 10C. 15D. 258. 对序列{15,9,7,8,20,-1,4,} 用希尔排序方法排序,经一趟后序列变为{15,-l,4,8,20,9,7}则该次采用的增量是 ( B )A. lB. 4C. 3D. 29. 堆排序是( E )类排序A. 插入B. 交换C. 归并D. 基数E. 选择10.排序方法有许多种,(1)法从未排序的序列中依次取出元素,与已排序序列(初始时为空)中的元素作比较,将其放入已排序序列的正确位置上;(2)法从未排序的序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端;交换排序方法是对序列中的元素进行一系列比较,当被比较的两元素逆序时,进行交换;(3)和(4)是基于这类方法的两种排序方法,而(4)是比(3)效率更高的方法;(5)法是基于选择排序的一种排序方法,是完全二叉树结构的一个重要应用。
数据结构第九、十章作业答案
第九章查找一、填空题1.在数据的存放无规律而言的线性表中进行检索的最佳方法是顺序查找(线性查找) 。
2.线性有序表(a i,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索_8 次。
设有100个结点,用二分法查找时,最大比较次数是_7_ ____________ 。
3•假设在有序线性表a[1..2O]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为_2 ___________ ;比较四次查找成功的结点数为8 ,其下标从小到大依次是1,3,6,8,11,13,16,19 _ ,平均查找长度为 3.7 。
解:显然,平均查找长度二0( log 2n) <5次(25)。
但具体是多少次,则不应当按照公式ASL =U|°g2(n⑴来计算(即(21 X log 221) /20 = 4.6次并不正确!)。
因为这是在假设n = 2m-1 n 的情况下推导出来的公式。
应当用穷举法罗列:全部元素的查找次数为=(1 + 2X 2+ 4X 3+ 8X 4+ 5X 5)= 74; ASL= 74/20=3.7 !!! 4•折半查找有序表(4, 6,12,20, 28, 38,50,70, 88,100),若查找表中元素20,它将依次与表中元素28 , 6, 12, 20 比较大小。
5. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是散列查找。
6. 散列法存储的基本思想是由关键字的值决定数据的存储地址。
7. 有一个表长为m的散列表,初始状态为空,现将n (n<m)个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。
如果这n个关键码的散列地址都相同,贝U探测的总次数是n(n-1)/2= ( 1 土2+…+ n-1 )。
(而任一元素查找次数 < n-1)&设一哈希表表长M为100,用除留余数法构造哈希函数,即H( K) =K MOIP ( P<=M ,为使函数具有较好性能,P应选(97 )9、在各种查找方法中,平均查找长度与结点个数无关的是哈_______10、对线性表进行二分查找时,要求线性表必须以顺序方式存储,且结点按关键字有序排列。
数据结构考研试题精选及答案第10章排序
第10章 排序排序排序一、选择题 1.某内排序方法的稳定性是指.某内排序方法的稳定性是指( )( )( )。
【南京理工大学【南京理工大学 1997 1997 1997 一、一、一、101010((2分)】 A .该排序算法不允许有相同的关键字记录该排序算法不允许有相同的关键字记录 B B B..该排序算法允许有相同的关键字记录记录C .平均时间为0(n log n n log n)的排序方法)的排序方法)的排序方法D D D.以上都不对.以上都不对.以上都不对2.下面给出的四种排序法中下面给出的四种排序法中( )( )( )排序法是不稳定性排序法。
排序法是不稳定性排序法。
【北京航空航天大学北京航空航天大学 1999 1999 1999 一、一、10 10 ((2分)】 A. A. 插入插入插入 B. B. B. 冒泡冒泡冒泡 C. C. C. 二路归并二路归并二路归并 D. D. D. 堆积堆积堆积 3.下列排序算法中,其中(.下列排序算法中,其中( )是稳定的。
)是稳定的。
)是稳定的。
【福州大学【福州大学 1998 1998 1998 一、一、一、3 (23 (2分)】A. A. 堆排序,冒泡排序堆排序,冒泡排序堆排序,冒泡排序B. B. B. 快速排序,堆排序快速排序,堆排序快速排序,堆排序C. C. 直接选择排序,归并排序直接选择排序,归并排序直接选择排序,归并排序D. D. D. 归并排序,冒泡排序归并排序,冒泡排序归并排序,冒泡排序4.稳定的排序方法是(.稳定的排序方法是( )) 【北方交通大学【北方交通大学【北方交通大学 2000 2000 2000 二、二、二、33(2分)】 A .直接插入排序和快速排序.直接插入排序和快速排序 B B B.折半插入排序和起泡排序.折半插入排序和起泡排序.折半插入排序和起泡排序C .简单选择排序和四路归并排序.简单选择排序和四路归并排序D D D.树形选择排序和.树形选择排序和shell 排序排序5.下列排序方法中,哪一个是稳定的排序方法?(.下列排序方法中,哪一个是稳定的排序方法?( ) 【北方交通大学【北方交通大学【北方交通大学 2001 2001 2001 一、一、一、88(2分)】A .直接选择排序.直接选择排序B B B.二分法插入排序.二分法插入排序.二分法插入排序C C C.希尔排序.希尔排序.希尔排序D D D.快速排序.快速排序.快速排序6.若要求尽可能快地对序列进行稳定的排序,则应选(.若要求尽可能快地对序列进行稳定的排序,则应选(A A .快速排序.快速排序 B B B.归并排序.归并排序.归并排序 C C C.冒.冒泡排序)。
数据结构第10章排序练习及答案
9.1选择题1.从末排序的序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在排序序列的合适位置,该排序方法称为()排序法。
A)插入B)选择C)希尔D)二路归并【答案】A2.下面各种排序方法中,最好情况下时间复杂度为O(n)的是()A)快速排序B)直接插入排序C)堆排序D)归并排序【答案】B3.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,无序序列的变化情况如下:25 84 21 47 15 27 68 35 2020 15 21 25 47 27 68 35 8415 20 21 25 35 27 47 68 8415 20 21 25 27 35 47 68 84则所采用的排序方法是()A)选择排序B)希尔排序C)归并排序D)快速排序【答案】D4.下面给出的四种排序法中,()排序是不稳定排序法。
A)插入B)冒泡C)二路归并D)堆【答案】D5.快速排序方法在()情况下最不利于发挥其长处。
A)要排序的数据量太大B)要排序的数据中含有多个相同值C)要排序的数据已基本有序D)要排序的数据个数为奇数【答案】C6.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()A)38,40,46,56,79,84B)40,38,46,79,56,84C)40,38,46,56,79,84D)40,38,46,84,56,79【答案】C7.对记录的关键码{50,26,38,80,70,90,8,30,40,20}进行排序,各趟排序结束时的结果为:50,26,38,80,70,90 ,8,30,40,2050,8,30,40,20,90,26,38,80,7026,8,30,40,20,80,50,38,90,708,20,26,30,38,40,50,70,80,90其使用的排序方法是()A)快速排序B)基数排序C)希尔排序D)归并排序【答案】C8.以下序列不是堆的是()A)100,85,98,77,80,60,82,40,20,10,66B)100,98,85,82,80,77,66,60,40,20,10C)10,20,40,60,66,77,80,82,85,98,100D)100,85,40,77,80,60,66,98,82,10,20【答案】D【解析】根据堆采用完全二叉树的顺序存储形式及堆的特点,因第一个结点即根结点关键字值最大,则应建立一个大根堆,但依据此数据序列建立起堆后关键字值为40的左右孩子结点分别为60、66,不符合大根堆特点。
数据结构(内部排序)习题与答案
一、单选题1、对关键字序列(21,19,37,5,2),经直接插入排序法由小到大排序,第一趟后所得结果为()。
A.(19,21,5,2,37)B.(19,21,37,5,2)C.(19,21,2,5,37)D.(19,21,5,37,2)正确答案:B2、对关键字序列(21,19,37,5,2),经冒泡排序法由小到大排序,第一趟后所得结果为()。
A.(19,21,37,5,2)B.(19,21,2,5,37)C.(19,21,5,37,2)D.(19,21,5,2,37)正确答案:D3、对关键字序列(149,138,165,197,176,113,127),采用基数排序的第一趟之后所得结果为()。
A.(113,165,176,197,127,138,149)B.(113,165,176,127,197,138,149)C.(113,127,138,149,165,176,197)D.(149,138,165,197,176,113,127)正确答案:A4、下列各项键值()序列不是堆的。
A.(5,23,68,16,94)B.(5,23,16,94,68)C.(5,16,23,68,94)D.(5,23,16,68,94)正确答案:A5、假设一组待排序的关键字序列为(24,62,36,19),要求从小到大进行排序,()是归并排序的过程。
A.(24,62,36,19)(24,36,62,19)(19,24,36,62)B.(24,62,19,36)(19,24,36,62)C.(62,24,36,19)(19,24,36,62)D.(24,19,36,62)(24,19,36,62)(19,24,36,62)正确答案:B6、在第一趟排序之后,不能确保将数据表中某一个元素放在其最终位置上的排序算法是()。
A.归并排序B.快速排序C.冒泡排序D.选择排序正确答案:A7、对于下列排序,()的时间效率与关键字初始序列有直接关系。
数据结构(内排序)练习题与答案
1、以下关于排序的叙述中正确的是()。
A.排序方法都是在顺序表上实现的,在链表上无法实现排序方法B.稳定的排序方法优于不稳定的排序方法,因为稳定的排序方法效率较高C.在顺序表上实现的排序方法在链表上也同样适合D.对同一个顺序表使用不同的排序方法进行排序,得到的排序结果可能不同正确答案:D解析: D、稳定的排序方法的效率不一定都比不稳定的排序方法高。
有些排序方法既可以上顺序表上实现,也可以在链表上实现,但不是所有的排序方法都如此。
由于排序方法具有不同的稳定性,所以对同一个顺序表(存在相同的多个关键字记录)使用不同的排序方法进行排序,得到的排序结果可能不同。
2、以下不属于内排序方法的是()。
A.直接插入排序B.拓扑排序C.二路归并排序D.堆排序正确答案:B解析: B、拓扑排序是一种产生拓扑序列的方法,不属内排序方法。
3、目前来讲,基于比较的内排序方法最好的平均时间复杂度为()。
A. O(log2n)B. O(n2)C. O(nlog2n)D. O(n)正确答案:C解析: C、目前来讲,基于比较的内排序方法最好的平均时间复杂度为O(nlog2n)。
4、对有n个记录的表进行直接插入排序,在最好情况下需比较()次关键字。
A.n(n-1)/2B.n-1C.n/2D.n+1正确答案:B解析: B、直接插入排序在初始数据正序时效率最好,此时只需要n-1次关键字比较。
5、数据序列{8,9,10,4,5,6,20,1,2}只能是()算法的两趟排序后的结果。
A.堆排序B.简单选择排序C.冒泡排序D.直接插入排序正确答案:D解析: D、采用排除法,因为两趟排序后结果中的有序区不是全局有序的,所以只能是直接插入排序,不可能是其他三种排序方法。
6、对数据序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排序变为{4,9,-1,8,20,7,15},则采用的是()算法。
A.冒泡排序B.希尔排序C.快速排序D.简单选择排序正确答案:B解析: B、因为一趟排序后结果中的有序区不是全局有序的,所以不可能是简单选择排序和冒泡排序。
数据结构答案第10章排序学习与指导
第10章排序10.1 知识点分析1. 排序根本概念:〔1〕排序将数据元素的任意序列, 重新排列成一个按关键字有序〔递增或递减〕的序列的过程称为排序。
〔2〕排序方法的稳定和不稳定假设对任意的数据元素序列, 使用某个排序方法, 对它按关键字进展排序, 假设对原先具有一样键值元素间的位置关系, 排序前与排序后保持一致, 称此排序方法是稳定的;反之, 那么称为不稳定的。
〔3〕内排序整个排序过程都在内存进展的排序称为内排序, 本书仅讨论内排序。
〔4〕外排序待排序的数据元素量大, 以致内存一次不能包容全部记录, 在排序过程中需要对外存进展访问的排序称为外排序。
2. 直接插入排序直接插入排序法是将一个记录插到已排序好的有序表中, 从而得到一个新的, 记录数增1的有序表。
3. 二分插入排序二分插入排序法是用二分查找法在有序表中找到正确的插入位置, 然后挪动记录, 空出插入位置, 再进展插入的排序方法。
4. 希尔排序希尔排序的根本思想是: 先选取一个小于n的整数d1作为第一个增量, 把待排序的数据分成d1个组, 所有间隔为d1的倍数的记录放在同一个组内, 在各组内进展直接插入排序, 每一趟排序会使数据更接近于有序。
然后, 取第二个增量d2, d2< d1, 重复进展上述分组和排序, 直至所取的增量di=1〔其中di< di-1 < ……< d2< d1〕, 即所有记录在同一组进展直接插入排序后为止。
5. 冒泡排序冒泡法是指每相邻两个记录关键字比大小, 大的记录往下沉〔也可以小的往上浮〕。
每一遍把最后一个下沉的位置记下, 下一遍只需检查比拟到此为止;到所有记录都不发生下沉时, 整个过程完毕。
6. 快速排序快速排序法是通过一趟排序, 将待排序的记录组分割成独立的两局部, 其中前一局部记录的关键字均比枢轴记录的关键字小;后一局部记录的关键字均比枢轴记录的关键字大, 枢轴记录得到了它在整个序列中的最终位置并被存放好。
数据结构第九、十章 作业答案
第九章 查找一、填空题1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是 顺序查找(线性查找) 。
2. 线性有序表(a 1,a 2,a 3,…,a 256)是从小到大排列的,对一个给定的值k ,用二分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。
设有100个结点,用二分法查找时,最大比较次数是 7 。
3. 假设在有序线性表a[1..20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 2 ;比较四次查找成功的结点数为 8 ,其下标从小到大依次是1,3,6,8,11,13,16,19______,平均查找长度为 3.7 。
解:显然,平均查找长度=O (log 2n )<5次(25)。
但具体是多少次,则不应当按照公式)1(log 12++=n nn ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。
因为这是在假设n =2m -1的情况下推导出来的公式。
应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.7 !!! 4.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 比较大小。
5. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 散列查找 。
6. 散列法存储的基本思想是由 关键字的值 决定数据的存储地址。
7. 有一个表长为m 的散列表,初始状态为空,现将n (n<m )个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。
如果这n 个关键码的散列地址都相同,则探测的总次数是 n(n-1)/2=( 1+2+…+n-1) 。
(而任一元素查找次数 ≤n-1)8、设一哈希表表长M 为100 ,用除留余数法构造哈希函数,即H (K )=K MOD P (P<=M ), 为使函数具有较好性能,P 应选( 97 )9、在各种查找方法中,平均查找长度与结点个数无关的是哈希查找法 10、对线性表进行二分查找时,要求线性表必须以 顺序 方式存储,且结点按关键字有序排列。
数据结构第九、十章 作业答案
第九章 查找一、填空题1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是 顺序查找(线性查找) 。
2. 线性有序表(a 1,a 2,a 3,…,a 256)是从小到大排列的,对一个给定的值k ,用二分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。
设有100个结点,用二分法查找时,最大比较次数是 7 。
3. 假设在有序线性表a[1..20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 2 ;比较四次查找成功的结点数为 8 ,其下标从小到大依次是1,3,6,8,11,13,16,19______,平均查找长度为 3.7 。
解:显然,平均查找长度=O (log 2n )<5次(25)。
但具体是多少次,则不应当按照公式)1(log 12++=n n n ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。
因为这是在假设n =2m -1的情况下推导出来的公式。
应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.7 !!!4.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 比较大小。
5. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 散列查找 。
6. 散列法存储的基本思想是由 关键字的值 决定数据的存储地址。
7. 有一个表长为m 的散列表,初始状态为空,现将n (n<m )个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。
如果这n 个关键码的散列地址都相同,则探测的总次数是 n(n-1)/2=( 1+2+…+n-1) 。
(而任一元素查找次数 ≤n-1)8、设一哈希表表长M 为100 ,用除留余数法构造哈希函数,即H (K )=K MOD P (P<=M ), 为使函数具有较好性能,P 应选( 97 )9、在各种查找方法中,平均查找长度与结点个数无关的是哈希查找法10、对线性表进行二分查找时,要求线性表必须以 顺序 方式存储,且结点按关键字有序排列。
数据结构Ch10习题答案
第十章内部排序一、择题1.用直接插入排序法对下面四个表进行(由小到大)排序,比较次数最少的是(B)。
A.(94,32,40,90,80,46,21,69)插32,比2次插40,比2次插90,比2次插80,比3次插46,比4次插21,比7次插69,比4次B.(21,32,46,40,80,69,90,94)插32,比1次插46,比1次插40,比2次插80,比1次插69,比2次插90,比1次插94,比1次C.(32,40,21,46,69,94,90,80)插40,比1次插21,比3次插46,比1次插69,比1次插94,比1次插90,比2次插80,比3次D.(90,69,80,46,21,32,94,40)插69,比2次插80,比2次插46,比4次插21,比5次插32,比5次插94,比1次插40,比6次2.下列排序方法中,哪一个是稳定的排序方法(BD)。
A.希尔排序B.直接选择排序C.堆排序D.冒泡排序下列3题基于如下代码:for(i=2;i<=n;i++){ x=A[i];j=i-1;while(j>0&&A[j]>x){ A[j+1]=A[j];j--;}A[j+1]=x}3.这一段代码所描述的排序方法称作(A)。
A.插入排序B.冒泡排序C.选择排序D.快速排序4.这一段代码所描述的排序方法的平均执行时间为(D)A.O(log2n) B.O(n) C.O(nlog2n) D.O(n2)5.假设这段代码开始执行时,数组A中的元素已经按值的递增次序排好了序,则这段代码的执行时间为(B)。
A.O(log2n) B.O(n) C.O(nlog2n) D.O(n2)6.在快速排序过程中,每次被划分的表(或了表)分成左、右两个子表,考虑这两个子表,下列结论一定正确是(B)。
A.左、右两个子表都已各自排好序B.左边子表中的元素都不大于右边子表中的元素C.左边子表的长度小于右边子表的长度D.左、右两个子表中元素的平均值相等7.对n个记录进行堆排序,最坏情况下的执行时间为(C)。
中国铁道出版社数据结构(第二版)单元10练习参考答案
单元测验10一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)(ㄨ)(1)如果某种排序算法不稳定,则该排序方法就没有实用价值。
(√)(2)希尔排序是不稳定的排序。
(ㄨ)(3)冒泡排序是不稳定的排序。
(√)(4)对n个记录的进行快速排序,所需要的平均时间是O(nlog2n)。
(ㄨ)(5)堆排序所需的时间与待排序的记录个数无关。
(√)(6)当待排序的元素个数很多时,为了交换元素的位置要占用较多的时间,这是影响时间复杂度的主要因素。
(ㄨ)(7)快速排序在任何情况下都比其它排序方法速度快。
(√)(8)对快速排序来说,初始序列为正序或反序都是最坏情况。
(√)(9)采用归并排序可以实现外排序。
(√)(10)采用希尔方法排序时,若关键字的排列杂乱无序,则效率最高。
(√)(11)快速排序算法在每一趟排序中都能找到一个元素放在其最终位置上。
(√)(12)冒泡排序的时间复杂度是O(n2)。
二.填空题(1)大多数排序算法都有两个基本的操作:比较和移动。
(2)评价排序算法优劣的主要标准是时间复杂度和算法所需的附加空间。
(3)根据被处理的数据在计算机中使用不同的存储设备,排序可分为:内排序和外排序。
(4)外排序是指在排序过程中,数据的主要部分存放在计算机的外存中。
(5)对n个关键字进行冒泡排序,其可能的最小比较次数为: n-1 次。
(6)在最坏情况下,在第i趟直接插入排序中,要进行 i-1 次关键字的比较。
(7)对n个关键字进行冒泡排序,时间复杂度为 O(n2) 。
(8)快速排序在最坏情况下的时间复杂度是 O(n2) 。
(9)对于n个记录的集合进行归并排序,所需要的平均时间为: O(log2n) 。
(10)对于n个记录的集合进行归并排序,所需要的附加空间是 O(n) 。
(11)若原始数据接近无序,则选用快速排序最好。
(12)在排序前,关键字值相等的不同记录,排序后相对位置保持不变的排序方法,称为稳定排序方法。
数据结构图,查找,内排序的练习及答案
数据结构图,查找,内排序的练习及答案数据结构课后练习习题要求:此次练习不要求上交,只是帮助⼤家掌握知识点,便于复习。
第⼋章图⼀.单项选择题(20分)1. 带权有向图G ⽤邻接矩阵A 存储,则Vi 的⼊度等于A 中___D______A. 第i ⾏⾮∞的元素只和B. 第i 列⾮∞的元素之和C. 第i ⾏⾮∞且⾮0的元素之和D. 第i 列⾮∞且⾮0的元素个数2. ⽆向图的邻接矩阵是⼀个___A____A. 对称矩阵B. 零矩阵C. 上三⾓阵D. 对⾓矩阵3. 在⼀个⽆向图中,所有顶点的度之和等于边数的__C____倍A. 1/2B. 1C. 2D. 44. ⼀个有n 个顶点的⽆向图最多有___C____条边。
A. nB. n(n-1)C. n(n-1)/2D.2n5. 对于⼀个具有n 个顶点的⽆向图,若采⽤邻接矩阵表⽰,则该矩阵⼤⼩是__D_____A. nB. 2)1(?nC. n-1D. 2n6. ⼀个有向图G 的邻接表存储如右图所⽰,现按深度优先搜索遍历,从V1出发,所得到的顶点序列是___B_____。
A. 1,2,3,4,5B. 1,2,3,5,4C. 1,2,4,5,3D. 1,2,5,3,47. 对右图所⽰的⽆向图,从顶点V1开始进⾏深度优先遍历,可得到顶点访问序列__A______(提⽰:可先画出邻居表图再遍历)A. 1 2 4 3 5 7 6B. 1 2 4 3 5 6 7C. 1 2 4 5 6 3 7D. 1 2 3 4 5 6 78. 如果从⽆向图的任⼀顶点出发进⾏⼀次深度优先搜索即可访问所有顶点,则该图⼀定是__B_____A. 完全图B. 连通图C.有回路D. ⼀棵树9. 任何⼀个⽆向连通图___B___最⼩⽣成树(提⽰:注意最⼩⽣成树的定义,此题易错)A. 只有⼀棵B. ⼀棵或多棵C. ⼀定有多棵D.可能不存在11. 若图的邻接矩阵中主对⾓线上的元素全是0,其余元素全是1,则可以断定该图⼀定是_D_____。
《数据结构与算法》第十章-排序习题
《数据结构与算法》第二部分习题精选一、填空题1. 大多数排序算法都有两个基本的操作:和。
2. 在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较次。
(可约定为从后向前比较)3. 在插入和选择排序中,若初始数据基本正序,则选用;若初始数据基本反序,则选用。
4. 在堆排序和快速排序中,若初始记录接近正序或反序,则选用;若初始记录基本无序,则最好选用。
5. 对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是。
若对其进行快速排序,在最坏的情况下所需要的时间是。
6. 对于n个记录的集合进行归并排序,所需要的平均时间是,所需要的附加空间是。
7.对于n个记录的表进行2路归并排序,整个归并排序需进行趟(遍),共计移动次记录。
二、单项选择题()1.将5个不同的数据进行排序,至多需要比较次。
A. 8 B. 9 C. 10 D. 25()2.排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为A. 希尔排序B. 冒泡排序C. 插入排序D. 选择排序()3.排序方法中,从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为A. 希尔排序B. 归并排序C. 插入排序D. 选择排序()4.对n个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。
A. 从小到大排列好的B. 从大到小排列好的C. 元素无序D. 元素基本有序()5.对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为A. n+1 B. n C. n-1 D. n(n-1)/2 ()6.快速排序在下列哪种情况下最易发挥其长处。
A. 被排序的数据中含有多个相同排序码B. 被排序的数据已基本有序C. 被排序的数据完全无序D. 被排序的数据中的最大值和最小值相差悬殊()7.对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是A.O(n) B.O(n2) C.O(nlog2n) D.O(n3)()8.若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为A. 38, 40, 46, 56, 79, 84 B. 40,38, 46 , 79, 56, 84C. 40, 38,46, 56, 79, 84 D. 40, 38,46, 84, 56, 79()9.在最好情况下,下列排序算法中排序算法所需比较关键字次数最少。
数据结构(内排序)练习题与答案
1、以下关于排序的叙述中正确的是()。
A.排序方法都是在顺序表上实现的,在链表上无法实现排序方法B.稳定的排序方法优于不稳定的排序方法,因为稳定的排序方法效率较高C.在顺序表上实现的排序方法在链表上也同样适合D.对同一个顺序表使用不同的排序方法进行排序,得到的排序结果可能不同正确答案:D解析: D、稳定的排序方法的效率不一定都比不稳定的排序方法高。
有些排序方法既可以上顺序表上实现,也可以在链表上实现,但不是所有的排序方法都如此。
由于排序方法具有不同的稳定性,所以对同一个顺序表(存在相同的多个关键字记录)使用不同的排序方法进行排序,得到的排序结果可能不同。
2、以下不属于内排序方法的是()。
A.直接插入排序B.拓扑排序C.二路归并排序D.堆排序正确答案:B解析: B、拓扑排序是一种产生拓扑序列的方法,不属内排序方法。
3、目前来讲,基于比较的内排序方法最好的平均时间复杂度为()。
A. O(log2n)B. O(n2)C. O(nlog2n)D. O(n)正确答案:C解析: C、目前来讲,基于比较的内排序方法最好的平均时间复杂度为O(nlog2n)。
4、对有n个记录的表进行直接插入排序,在最好情况下需比较()次关键字。
A.n(n-1)/2B.n-1C.n/2D.n+1正确答案:B解析: B、直接插入排序在初始数据正序时效率最好,此时只需要n-1次关键字比较。
5、数据序列{8,9,10,4,5,6,20,1,2}只能是()算法的两趟排序后的结果。
A.堆排序B.简单选择排序C.冒泡排序D.直接插入排序正确答案:D解析: D、采用排除法,因为两趟排序后结果中的有序区不是全局有序的,所以只能是直接插入排序,不可能是其他三种排序方法。
6、对数据序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排序变为{4,9,-1,8,20,7,15},则采用的是()算法。
A.冒泡排序B.希尔排序C.快速排序D.简单选择排序正确答案:B解析: B、因为一趟排序后结果中的有序区不是全局有序的,所以不可能是简单选择排序和冒泡排序。
数据结构查找与排序练习题答案——查找排序练习题答案
数据结构查找与排序练习题答案一、选择题1.对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( ) A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/22.适用于折半查找的表的存储方式及元素排列要求为( )A.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序3.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( )A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减4.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为()。
A.35/12 B.37/12 C.39/12 D.43/125.折半查找的时间复杂性为()A. O(n2)B. O(n)C. O(nlogn)D. O(logn)6.对有18个元素的有序表作折半查找,则查找A[3]的比较序列的下标为()A.1,2,3B.9,5,2,3C.9,5,3D.9,4,2,37.设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找健值为84的结点时,经()次比较后查找成功。
A.2B. 3C. 4D.128.用n个键值构造一棵二叉排序树,最低高度为()A.n/2B.、nC.lognD.logn+19.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) A.(100,80, 90, 60, 120,110,130)B.(100,120,110,130,80, 60, 90)C.(100,60, 80, 90, 120,110,130)D.(100,80, 60, 90, 120,130,110)10.设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key% 13,散列地址为1的链中有()个记录。
数据结构单元10练习参考答案
单元测验10一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳)(ㄨ)(1)如果某种排序算法不稳定,则该排序方法就【没】有实用价值。
(√)(2)希尔排序是不稳定的排序。
(ㄨ)(3)冒泡排序是【不】稳定的排序。
(√)(4)对n个记录的进行快速排序,所需要的平均时间是O(nlog2n)。
(ㄨ)(5)堆排序所需的时间与待排序的记录个数【无】有关。
(√)(6)当待排序的元素个数很多时,为了交换元素的位置要占用较多的时间,这是影响时间复杂度的主要因素。
(ㄨ)(7)快速排序不是在任何情况下都比其它排序方法速度快。
(√)(8)对快速排序来说,初始序列为正序或反序都是最坏情况。
(√)(9)采用归并排序可以实现外排序。
(√)(10)采用希尔方法排序时,若关键字的排列杂乱无序,则效率最高(√)(11)快速排序算法在每一趟排序中都能找到一个元素放在其最终位置上。
(√)(12)冒泡排序的时间复杂度是O(n2)。
二.填空题(1)大多数排序算法都有两个基本的操作:比较和移动。
(2)评价排序算法优劣的主要标准是时间复杂度和算法所需的附加空间。
(3)根据被处理的数据在计算机中使用不同的存储设备,排序可分为:内排序和外排序。
(4)外排序是指在排序过程中,数据的主要部分存放在计算机的外存中。
(5)对n个关键字进行冒泡排序,其可能的最小比较次数为:n-1次。
(6)在最坏情况下,在第i趟直接插入排序中,要进行i-1次关键字的比较。
(7)对n个关键字进行冒泡排序,时间复杂度为 O(n2) 。
(8)快速排序在最坏情况下的时间复杂度是 O(n2) 。
(9)对于n个记录的集合进行归并排序,所需要的平均时间为: O(log2n) 。
(10)对于n个记录的集合进行归并排序,所需要的附加空间是 O(n) 。
(11)若原始数据接近无序,则选用快速排序最好。
(12)在排序前,关键字值相等的不同记录,排序后相对位置保持不变的排序方法,称为稳定排序方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.1选择题
1.从末排序的序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在排序序列的合适位置,该排序方法称为()排序法。
A)插入B)选择C)希尔D)二路归并
【答案】A
2.下面各种排序方法中,最好情况下时间复杂度为O(n)的是()
A)快速排序B)直接插入排序C)堆排序D)归并排序
【答案】B
3.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,无序序列的变化情况如下:
25 84 21 47 15 27 68 35 20
20 15 21 25 47 27 68 35 84
15 20 21 25 35 27 47 68 84
15 20 21 25 27 35 47 68 84
则所采用的排序方法是()
A)选择排序B)希尔排序C)归并排序D)快速排序
【答案】D
4.下面给出的四种排序法中,()排序是不稳定排序法。
A)插入B)冒泡C)二路归并D)堆
【答案】D
5.快速排序方法在()情况下最不利于发挥其长处。
A)要排序的数据量太大
B)要排序的数据中含有多个相同值
C)要排序的数据已基本有序
D)要排序的数据个数为奇数
【答案】C
6.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()
A)38,40,46,56,79,84
B)40,38,46,79,56,84
C)40,38,46,56,79,84
D)40,38,46,84,56,79
【答案】C
7.对记录的关键码{50,26,38,80,70,90,8,30,40,20}进行排序,各趟排序结束时的结果为:
50,26,38,80,70,90 ,8,30,40,20
50,8,30,40,20,90,26,38,80,70
26,8,30,40,20,80,50,38,90,70
8,20,26,30,38,40,50,70,80,90
其使用的排序方法是()
A)快速排序B)基数排序C)希尔排序D)归并排序
【答案】C
8.以下序列不是堆的是()
A)100,85,98,77,80,60,82,40,20,10,66
B)100,98,85,82,80,77,66,60,40,20,10
C)10,20,40,60,66,77,80,82,85,98,100
D)100,85,40,77,80,60,66,98,82,10,20
【答案】D
【解析】根据堆采用完全二叉树的顺序存储形式及堆的特点,因第一个结点即根结点关键字值最大,则应建立一个大根堆,但依据此数据序列建立起堆后关键字值为40的左右孩子结点分别为60、66,不符合大根堆特点。
9.一组记录的关键字为{45,80,55,40,42,85},则利用堆排序的方法建立的初始堆为()
A)80,45,50,40,42,85
B)85,80,55,40,42, 45
C)85,80,55,45,42,40
D)85,55,80,42,45,40
【答案】B
10.一组记录的关键字为{25,50,15,35,80,85,20,40,36,70},其中含有5个长度为2的有序表,用归并排序方法对该序列进行一趟归并后的结果为()
A)15,25,35,50,20,40,80,85,36,70
B)15,25,35,50,80,20,85,40,70,36
C)15,25,50,35,80,85,20,36,40,70
D)15,25,35,50,80,20,36,40,70,85
【答案】A
【解析】对5个长度为2的有序表一趟归并后得到前两个长度为4的有序表和最后一个长度为2的有序表,故选A。
11.n个元素进行冒泡排序的过程中,最好情况下的时间复杂度为()
A)O(1) B)O(log2n) C)O(n2) D)O(n)
【答案】D
【解析】最好情况下至少需要一趟排序,即比较n-1次,故选D。
12.下述几种排序方法中,要求内存量最大的是()
A)插入排序B)选择排序C)快速排序D)归并排序
【答案】D
【解析】插入排序和选择排序需要的辅助空间为O(1),快速排序需要的辅助空间为O(log2n ),归并排序需要的辅助空间为O(n),因此选D。
13.下面排序方法中,时间复杂度不是O(n2)的是()
A)直接插入排序B)二路归并排序C)冒泡排序D)直接选择排序
【答案】B
【解析】直接插入排序、冒泡排序和直接选择排序的时间复杂度为O(n2),而二路归并排序的时间复杂度为O(n log2n),故选B。
填空题
1.当数据量特别大需借助外部存储器对数据进行排序,则这种排序称为_____________。
【答案】外部排序
2.在堆排序、快速排序和归并排序中,若从节省存储空间考虑,则应首先选取_____________方法,其次选取_____________方法;若只从排序结果的稳定性考虑,则应先择_____________方法;若只从平均情况下排序的速度来考虑,则选择_____________方法;若只从最坏情况下排序最快并且要节省内存考虑,则应选取_____________方法。
【答案】(1)堆排序(2)快速排序(3)归并排序(4)快速(5)堆
3.对n个元素的序列进行冒泡排序,最少的比较次数是_____________,此时元素的排列情况为_____________,在_____________情况下比较次数最多,其比较次数为_____(4)_ ____。
【答案】
(1)n-1(2)从小到大排序(3)元素从大到小排列(4)n(n-1)/2
【解析】初始元素正序时,第一趟比较n-1次,并无数据交换,则不再比较,故只比较n-1次。
若反序,则比较(n-1)+(n-2)+(n-3)+…..+2+1共n(n-1)/2次。
4.设表中元素的初态是按键值递增的,若分别用堆排序、快速排序、冒泡排序和归并排序方法对其仍按递增顺序进行排序,则_____________最省时间,_____________最费时间。
【答案】(1)冒泡排序(2)快速排序
【解析】若初始序列已经有序,则冒泡排序仅需一趟(比较n-1次);而快速排序则需n-1趟,其时间复杂度升至O(n2)。
因此填:冒泡排序,快速排序。
4.设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 试分别写出使用以下排序方法每趟排序后的结果。
并说明做了多少次排序码比较。
(1)直接插入排序(2)希尔排序(增量为5,2,1)
(3)起泡排序(4)快速排序
(5)堆排序
【答案】
(1)直接插入排序
(2)希尔排序(增量为5,2,1)
(3)起泡排序
(4)快速排序
(5)堆排序
第一步,形成初始的最大堆(略),第二步,做堆排序。
初始排列,不是最大堆形成初始最大堆交换0# 与9# 对象
从0# 到8# 重新形成堆交换0# 与8# 对象从0# 到7# 重新形成堆
交换0# 与7# 对象从0# 到6# 重新形成堆交换0# 与6# 对象
从0# 到5# 重新形成堆交换0# 与5# 对象从0# 到4# 重新形成堆
交换0# 与4# 对象从0# 到3# 重新形成堆交换0# 与3# 对象
从0# 到2# 重新形成堆交换0# 与2# 对象从0# 到1# 重新形成堆
交换0# 与1# 对象从0# 到1# 重新形成堆,得到结果。