200个元素的有序表,折半查找,长度为8的

题目:探讨折半查找在有序表中的应用

一、介绍有序表和折半查找的概念

有序表是指元素按照一定的顺序排列的线性表,其中的元素可以是数字、字母、符号等。而折半查找,也称为二分查找,是一种在有序表中查找特定元素的算法。它通过将目标值与表中间的值进行比较,并根据比较结果排除一半的元素,从而快速地定位目标值的位置。

二、有序表的构建和特点

1. 有序表通常是通过排序算法将无序表中的元素按照一定的顺序进行排列而成的。

2. 有序表的元素可以按照升序或降序排列,常见的排序算法包括冒泡排序、快速排序、插入排序等。

3. 有序表的构建需要消耗一定的时间和空间,但它可以提高查找、插入和删除元素的效率。

三、折半查找的基本原理

1. 折半查找是基于有序表的特点而设计的查找算法,它的基本原理是通过不断将目标值与中间值进行比较,从而缩小需要查找的范围。

2. 折半查找的时间复杂度为O(logn),在查找大规模数据时速度非常快,适合于静态有序表的查找操作。

四、200个元素的有序表中的折半查找

1. 假设有一个含有200个元素的有序表,编号分别为1至200。

2. 对于折半查找来说,首先需要将有序表按照升序排列。

3. 接下来,确定要查找的目标值,例如为100。

4. 此时,将目标值100与有序表中间位置的值进行比较,假设中间位置的值为150。

5. 由于100小于150,因此可以排除后半部分的元素。

6. 在前半部分的元素中再次取中间位置的值进行比较,重复这个过程直到找到目标值为止。

五、长度为8的有序表中的折半查找

1. 如果有一个长度为8的有序表,编号分别为1至8。

2. 则按照折半查找的方法,首先将有序表按照升序排列。

3. 确定要查找的目标值,例如为6。

4. 将目标值6与有序表中间位置的值进行比较,假设中间位置的值为4。

5. 由于6大于4,因此可以排除前半部分的元素。

6. 在后半部分的元素中再次取中间位置的值进行比较,重复这个过程直到找到目标值为止。

六、折半查找在实际应用中的意义

1. 折半查找在大规模数据的查找操作中具有较高的效率,适用于静态有序表的查找。

2. 在数据库中,折半查找可以帮助快速定位到需要查找的数据,提高

查询效率。

3. 折半查找也常用于各种搜索算法和数据结构中,是一种基础且重要的查找方法。

七、总结

折半查找是一种基于有序表的查找算法,能够快速地定位目标值的位置。通过将目标值与有序表中间位置的值进行比较,不断排除一半的元素,最终找到目标值的位置。在实际应用中,折半查找具有较高的效率和适用性,在处理大规模静态有序表的查找操作中有着重要的意义。希望通过本文的介绍,读者能够更深入地了解折半查找在有序表中的应用。

以上文章旨在介绍有序表中折半查找的基本概念、原理和应用,希望能为读者提供有关这一领域知识的基础参考。感谢阅读!有序表和折半查找是算法和数据结构领域中非常重要的概念,它们在实际的软件开发和数据处理中发挥着重要作用。下面我们将继续探讨有序表和折半查找在实际中的应用以及优化方法。

让我们从有序表的构建和特点开始讨论。有序表的构建通常需要使用排序算法,常见的排序算法包括冒泡排序、快速排序、插入排序等。这些算法可以将无序表中的元素按照一定的顺序进行排列,形成有序表。有序表的元素可以按照升序或降序排列,这取决于具体的应用场景。有序表的构建需要消耗一定的时间和空间,但它可以提高查找、

插入和删除元素的效率。有序表的特点使得在其中进行查找操作更加高效,特别是对于大规模数据的情况。

折半查找作为一种基于有序表的查找算法,具有非常高的效率。它的基本原理是通过不断将目标值与中间值进行比较,从而缩小需要查找的范围。折半查找的时间复杂度为O(logn),在查找大规模数据时速度非常快,因此非常适合于静态有序表的查找操作。在实际应用中,折半查找常常用于数据库查询、搜索算法和各种数据结构中。它可以帮助快速定位到需要查找的数据,提高查询效率,并且适用于各种规模的数据。

在实际应用中,有序表和折半查找的组合经常被用于解决各种问题。在软件开发中,当需要从一个大型有序数据集中查找特定的元素时,可以使用折半查找来提高查找效率。在数据库系统中,折半查找可以帮助加快查询速度,提高系统的性能。另外,在数据结构和算法课程中,折半查找常常被用来讲解查找算法的原理和实现。

除了基本的折半查找算法之外,还有一些对折半查找的优化方法。在实际应用中,可以根据具体的场景考虑使用插值查找或斐波那契查找等更高级的查找算法。这些算法在某些特定情况下可以进一步提高查找效率,减少查找的时间复杂度。针对特定类型的数据,还可以考虑使用分块查找或树结构的查找方法,这些方法都是折半查找算法的衍生和扩展,能够更好地适应不同的应用场景。

有序表和折半查找在实际应用中具有非常重要的意义。它们可以帮助

解决大规模静态数据集的查找问题,提高查询效率,同时也为我们理

解算法和数据结构的基本原理提供了重要的实例。在今后的软件开发

和数据处理中,我们可以根据具体的需求选择合适的排序算法和查找

算法,以提高系统的性能和效率。通过不断学习和探索,我们可以更

好地应用有序表和折半查找,为实际问题的解决提供有效的算法支持。

计算机专业基础综合数据结构(查找)历年真题试卷汇编1

计算机专业基础综合数据结构(查找)历年真题试卷汇编1 (总分:108.00,做题时间:90分钟) 一、单项选择题(总题数:34,分数:76.00) 1.顺序查找法适合于存储结构为____的线性表。【北京航空航天大学2002年】 (分数:2.00) A.顺序存储结构或链式存储结构√ B.散列存储结构 C.索引存储结构 D.压缩存储结构 解析:解析:考查顺序查找的适合结构。顺序查找从线性表的一端开始,逐个检查关键字是否满足给定的条件。存储结构为顺序存储或链式存储。 2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度(ASL)为____。【北京航空航天大学2004年】 (分数:2.00) A.(n—1)/2 B.n/2 C.(n+1)/2 √ D.n 解析:解析:考查顺序查找法平均查找长度。查找第1个记录的查找长度为1,查找第n个记录的查找长度为n,查找每个记录的概率为1/n。ASL为[n(1+n)/2]/n=(n+1)/2。 3.当采用分块查找时,数据的组织方式为____。【太原科技大学2007年】 (分数:2.00) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块√ C.数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D.数据分成若干块,每块(除最后一块外)中数据个数需相同 解析:解析:考查分块查找的定义。分块查找要求将查找表按照关键码的区间分成若干个子表,并对子表建立索引表。索引表有序,子表不一定有序。子表中最大或最小的数据组成索引块。 4.对有2500个记录的索引顺序表(分块表)进行查找,最理想的块长为____。【华中科技大学2007年】(分数:2.00) A.50 √ B.125 C.500 D.[log 2 2500] 解析:解析:考查分块查找的最优块长。分块查找的平均查找长度不仅和表的总长度n有关,而且和所分 的子表个数s有关,对于n给定的情况下,s取时,ASL。所以,最理想块长为50。 5.下面关于二分查找的叙述正确的是____。【南京理工大学1996年】 (分数:2.00) A.表必须有序,表可以顺序方式存储,也可以链表方式存储 B.表必须有序且表中数据必须是整型、实型或字符型 C.表必须有序,而且只能从小到大排列 D.表必须有序,且表只能以顺序方式存储√ 解析:解析:考查折半查找的条件。顺序查找只要求是线性表,顺序存储还是链式存储都可以,元素不要求有序。折半查找要求以顺序方式存储且数据元素有序。

数据结构 第九章 查找 作业及答案

第九章查找 一、填空题 1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是。 2. 线性有序表(a 1,a 2 ,a 3 ,…,a 256 )是从小到大排列的,对一个给定的值k,用二分法检索 表中与k相等的元素,在查找不成功的情况下,最多需要检索次。设有100个结点,用二分法查找时,最大比较次数是。 3. 假设在有序线性表a[1..20]上进行折半查找,则比较一次查找成功的结点数为1;比较两 次查找成功的结点数为 2 ;比较四次查找成功的结点数为 ,其下标从小到大依次是 ____,平均查找长度为。 4.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素比较大小。 5. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是。 6. 散列法存储的基本思想是由决定数据的存储地址。 7. 有一个表长为m的散列表,初始状态为空,现将n(n

中国铁道出版社数据结构(第二版)单元9练习参考答案

单元练习9 一.判断题(下列各题,正确的请在前面的括号内打√;错误的打╳) (√)(1)二分查找法要求待查表的关键字值必须有序。 (ㄨ)(2)对有序表而言采用二分查找总比采用顺序查找法速度快。 (ㄨ)(3)在二叉排序树中,根结点的值都小于孩子结点的值。 (√)(4)散列存储法的基本思想是由关键字的值决定数据的存储地址。 (√)(5)哈希表是一种将关键字转换为存储地址的存储方法。 (ㄨ)(6)选择好的哈希函数就可以避免冲突的发生。 (ㄨ)(7)在有序的顺序表和有序的链表上,均可以采用二分查找来提高查找速度。 (√)(8)采用分块查找,既能实现线性表所希望的查找速度,又能适应动态变化的需要。 (√)(9)哈希法的查找效率主要取决于哈希表构造时选取的哈希函数和处理冲突的方法。 (ㄨ)(10)在二叉排序树上删除一个结点时,不必移动其它结点,只要将该结点的父结点的相应的指针域置空即可。 二.填空题 (1)顺序查找法,表中元素可以任意存放。 (2)在分块查找方法中,首先查找索引,然后再查找相应的块。 (3)顺序查找、二分查找、分块查找都属于静态查找。 (4)静态查找表所含元素个数在查找阶段是固定不变的。 (5)对于长度为n的线性表,若进行顺序查找,则时间复杂度为 O(n)。 (6)对于长度为n的线性表,若采用二分查找,则时间复杂度为: O(log2n)。 (7)理想情况下,在散列表中查找一个元素的时间复杂度为: O(1)。 (8)在关键字序列(7,10,12,18,28,36,45,92)中,用二分查找法查找关键字92,要比较 4 次才找到。 (9)设有100个元素,用二分查找时,最大的比较次数是 7 次。 (10)对二叉排序树进行查找的方法是用待查的值与根结点的键值进行比较,若比根结点小,则继续在左子树中查找。 (11)二叉排序树是一种动态查找表。 (12)哈希表是按散列存储方式构造的存储结构 (13)哈希法既是一种存储方法,又是一种查找方法。 (14)散列表的查找效率主要取决于散列表造表时选取的散列函数和处理冲突的方法。(15)设散列函数H和键值k1,k2,若k1≠k2,且H(k1)=H(k2),则称这种现象为冲突。(16)处理冲突的两类主要方法是开放定址法和拉链法(或链地址法)。 (17)散列表(或散列)查找法的平均查找长度与元素个数n无关。 (18)在哈希函数H(key)=key % P中,P一般应取质数。 (19)在查找过程中有插入元素或删除元素操作的,称为动态查找。 (20)各结点左右子树深度之差的绝对值至多为 1 的二叉树称谓平衡二叉树。

《数据结构》习题集:第9章查找(第1次更新2019-5)

第9章查找 一、选择题 1.顺序查找一个共有n个元素的线性表,其时间复杂度为(),折半查找一个具有n个元素的有序表,其时间复 杂度为()。【*,★】 A.O(n) B. O(log2n) C. O(n2) D. O(nlog2n) 2.在对长度为n的顺序存储的有序表进行折半查找,对应的折半查找判定树的高度为()。【*,★】 A.n B. C. D. 3.采用顺序查找方式查找长度为n的线性表时,平均查找长度为()。【*】 A.n B. n/2 C. (n+1)/2 D. (n-1)/2 4.采用折半查找方法检索长度为n的有序表,检索每个元素的平均比较次数()对应判定树的高度(设高度大于 等于2)。【**】 A.小于 B. 大于 C. 等于 D. 大于等于 5.已知有序表(13,18,24,35,47,50,62,83,90,115,134),当折半查找值为90的元素时,查找成功 的比较次数为()。【*】 A. 1 B. 2 C. 3 D. 4 6.对线性表进行折半查找时,要求线性表必须()。【*】 A.以顺序方式存储 B. 以链接方式存储 C.以顺序方式存储,且结点按关键字有序排序 D. 以链接方式存储,且结点按关键字有序排序 7.顺序查找法适合于存储结构为()的查找表。【*】 A.散列存储 B. 顺序或链接存储 C. 压缩存储 D. 索引存储 8.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在 的块时,每块应分()个结点最佳。【**】 A.10 B. 25 C. 6 D. 625 9.从键盘依次输入关键字的值:t、u、r、b、o、p、a、s、c、l,建立二叉排序树,则其先序遍历序列为(), 中序遍历序列为()。【**,★】 A.abcloprstu B. alcpobsrut C. trbaoclpsu D. trubsaocpl 10.折半查找和二叉排序树的时间性能()。【*】 A.相同 B. 不相同 11.一棵深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有()个结点。 A.2k-1-1 B. 2k-1 C. 2k-1+1 D. 2k-1 12.利用逐点插入法建立序列{50,72,43,85,75,20,35,45,65,30}对应的二叉排序树以后,查找元素35要 进行()元素间的比较。 A.4次 B. 5次 C. 7次 D. 10次 13.设Hash地址空间为0到m-1,哈希函数为h(k)=k%p,为了减少发生冲突的可能性,一般取p为()。 A.小于m的最大奇数 B. 小于m的最大素数 C. 小于m的最大偶数 D. 小于m的最大合数

数据结构练习附答案

一、单项选择题 1.逻辑关系是指数据元素间的() A.类型 B.存储方式 C.结构 D.数据项 2.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构 为( ) A.顺序表 B.用头指针表示的单循环链表 C. 用尾指针表示的单循环链表 D. 单链表 3.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear 为队尾指针,则执行出队操作后其头指针front值为() A.front=front+1 B.front= (front+1)%(m-1) C.front=(front-1)%m D.front=(fro nt+1)%m 4.在具有n个单元的顺序存储的循环队列中,假定front和rear分别 为队头指针和队尾指针,则判断队满的条件为( )。 A.rear%n==front B.(front+l)%n==rear C.rear%n-1==front D.(rear+l)%n==front 5.在具有n个单元的顺序存储的循环队列中,假定front和rear分别 为队头指针和队尾指针,则判断队空的条件为( )。 A.rear%n==front B.front+l=rear C.rear==front D.(rear+l)%n=front 6.已知一颗二叉树上有92个叶子结点,则它有____个度为2的结点。 ( ) A. 90 B. 91 C. 92 D. 93 7.在一棵非空二叉树的中序遍历序列中,根结点的右边_____。 A. 只有右子树上的所有结点 B. 只有右子树上的部分结点 C. 只有左子树上的所有结点 D. 只有左子树上的部分结点 8.有n条边的无向图的邻接表存储法中,链表中结点的个数是( )个。 A. n B. 2n C. n/2 D. n*n 9.判断有向图是否存在回路,除了可利用拓扑排序方法外,还可以利 用()。 A. 求关键路径的方法 B.求最短路径的方法 C. 深度优先遍历算法 D.广度优先遍历算法 10.对线性表进行二分查找时,要求线性表必须( )。

200个元素的有序表,折半查找,长度为8的

题目:探讨折半查找在有序表中的应用 一、介绍有序表和折半查找的概念 有序表是指元素按照一定的顺序排列的线性表,其中的元素可以是数字、字母、符号等。而折半查找,也称为二分查找,是一种在有序表中查找特定元素的算法。它通过将目标值与表中间的值进行比较,并根据比较结果排除一半的元素,从而快速地定位目标值的位置。 二、有序表的构建和特点 1. 有序表通常是通过排序算法将无序表中的元素按照一定的顺序进行排列而成的。 2. 有序表的元素可以按照升序或降序排列,常见的排序算法包括冒泡排序、快速排序、插入排序等。 3. 有序表的构建需要消耗一定的时间和空间,但它可以提高查找、插入和删除元素的效率。 三、折半查找的基本原理 1. 折半查找是基于有序表的特点而设计的查找算法,它的基本原理是通过不断将目标值与中间值进行比较,从而缩小需要查找的范围。 2. 折半查找的时间复杂度为O(logn),在查找大规模数据时速度非常快,适合于静态有序表的查找操作。 四、200个元素的有序表中的折半查找

1. 假设有一个含有200个元素的有序表,编号分别为1至200。 2. 对于折半查找来说,首先需要将有序表按照升序排列。 3. 接下来,确定要查找的目标值,例如为100。 4. 此时,将目标值100与有序表中间位置的值进行比较,假设中间位置的值为150。 5. 由于100小于150,因此可以排除后半部分的元素。 6. 在前半部分的元素中再次取中间位置的值进行比较,重复这个过程直到找到目标值为止。 五、长度为8的有序表中的折半查找 1. 如果有一个长度为8的有序表,编号分别为1至8。 2. 则按照折半查找的方法,首先将有序表按照升序排列。 3. 确定要查找的目标值,例如为6。 4. 将目标值6与有序表中间位置的值进行比较,假设中间位置的值为4。 5. 由于6大于4,因此可以排除前半部分的元素。 6. 在后半部分的元素中再次取中间位置的值进行比较,重复这个过程直到找到目标值为止。 六、折半查找在实际应用中的意义 1. 折半查找在大规模数据的查找操作中具有较高的效率,适用于静态有序表的查找。 2. 在数据库中,折半查找可以帮助快速定位到需要查找的数据,提高

数据结构习题 5

第8章查找 8.1选择题 1.顺序查找法适合于存储结构为()的线性表。 A)散列存储B)顺序存储或链接存储C)压缩存储D)索引存储 2.下面哪些操作不属于静态查找表() A)查询某个特定元素是否在表中B)检索某个特定元素的属性 C)插入一个数据元素D)建立一个查找表 3.下面描述不正确的是() A)顺序查找对表中元素存放位置无任何要求,当n较大时,效率低。 B)静态查找表中关键字有序时,可用二分查找。 C)分块查找也是一种静态查找表。 D)经常进行插入和删除操作时可以采用二分查找。 4.散列查找时,解决冲突的方法有() A)除留余数法B)数字分析法C)直接定址法D)链地址法 5.若表中的记录顺序存放在一个一维数组中,在等概率情况下顺序查找的平均查找长度为() A)O(1)B)O(log2n) C)O(n) D)O(n2) 6.对长度为4的顺序表进行查找,若第一个元素的概率为1/8,第二个元素的概率为1/4,第三个元素的概率为3/8,第四个元素的概率为1/4,则查找任一个元素的平均查找长度为() A)11/8 B)7/4 C)9/4 D)11/4 7.静态查找表与动态查找表二者的根本差别在于() A)它们的逻辑结构不一样B)施加在其上的操作不同 C)所包含的数据元素的类型不一样D)存储实现不一样 8.若查找表中的记录按关键字的大小顺序存放在一个一维数组中,在等概率情况下二分法查找的平均检索长度是() A)O(n) B)O(log2n) C)O(nlog2n) D)O((log2n)2) 9.对有14个数据元素的有序表R[14](假设下标从1开始)进行二分查找,搜索到R[4]的关键码等于给定值,此时元素比较顺序依次为()。 A)R[1],R[2],R[3],R[4] B)R[1],R[13],R[2],R[3] C)R[7],R[3],R[5],R[4] D)R[7],R[4],R[2],R[3] 10.设有一个长度为100的已排好序的表,用二分查找进行查找,若查找不成功,至少比较()次。A)9B)8 C)7 D)6

查找练习题(答案)

《查找》练习题 一、单项选择题 1.若查找每个元素的概率相等,则在长度为n的顺序表上查找任一元素的平均查找长度为( )。 A. n B. n+1 C. (n-1)/2 D. (n+1)/2 2.对于长度为9的顺序存储的有序表,若采用折半查找,在等概率情况下的平均查找长度为( )。 A. 20/9 B. 18/9 C. 25/9 D. 22/9 3.对于长度为18的顺序存储的有序表,若采用折半查找,则查找第15个元素(从1开始数)的比较次数为( )。 A. 3 B. 4 C. 5 D. 6 4.对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用折半查找,则查找元素26的比较次数为( )。 A. 2 B. 3 C. 4 D. 5 5.对具有n个元素的有序表采用折半查找,则算法的时间复杂度为( )。 A. O(n) B. O(n2) C. O(1) D. O(log2n) 6.在索引查找中,若用于保存数据元素的主表的长度为144,它被均分为12子表,每个子表的长度均为12,则索引查找的平均查找长度为( )。 A. 13 B. 24 C. 12 D. 79 7.从具有n个结点的二叉排序树中查找一个元素时,在平均情况下的时间复杂度大致为( )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 8.从具有n个结点的二叉排序树中查找一个元素时,在最坏情况下的时间复杂度为( )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 9.若根据查找表(23,44,36,48,52,73,64,58)建立哈希表,采用h(K)=K%13计算哈希地址,则元素64的哈希地址为( )。 A. 4 B. 8 C. 12 D. 13 10.若根据查找表建立长度为m的哈希表,采用线性探测法处理冲突,假定对一个元素第一次计算的哈希地址为d,则下一次的哈希地址为( )。 A. d B. d+1 C. (d+1)/m D. (d+1)%m 二、填空题 1.以顺序查找方法从长度为n的顺序表或单链表中查找一个元素时,平均查找长度为____ (n+1)/2____。 2.以折半查找方法从长度为n的有序表中查找一个元素时,平均查找长度约等于 __log2n______的向上取整减1,时间复杂度为___O(log2n) _____。 3.以折半查找方法在一个查找表上进行查找时,该查找表必须组织成__顺序______存储的

画出对长度为10的有序表进行折半查找的判定树

1.画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。 2. 在一棵空的二叉查找树中依次插入关键字序列为12,7,17,11,16,2,13,9,21,4,请画出所得到的二叉查找树。 3.已知如下所示长度为12的表: (Jan, Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov, Dec) (1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树, 并求其在等概率的情况下查找成功的平均查找长度。 (2)若对表中元素先进行排序构成有序表,求在等概率的情况下对此有序表进行折半查找时查找成 功的平均查找长度。 (3)按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长 度。 4. 选取散列函数H(key)=(3*key)%11,用线性探测法处理冲突,对下列关键码序列构造一个散列地址空间为0~10,表长为11的散列表,{22,41,53,08,46,30,01,31,66}。 5.假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题: (1)画出描述折半查找过程的判定树; (2)若查找元素54,需依次与哪些元素比较? (3)若查找元素90,需依次与哪些元素比较? (4)假定每个元素的查找概率相等,求查找成功时的平均查找长度。

6. 设哈希(Hash)表的地址范围为0~17,哈希函数为:H(K)=K MOD 16。 K为关键字,用线性探测法再散列法处理冲突,输入关键字序列: (10,24,32,17,31,30,46,47,40,63,49) 造出Hash表,试回答下列问题: (1)画出哈希表的示意图; (2)若查找关键字63,需要依次与哪些关键字进行比较? (3)若查找关键字60,需要依次与哪些关键字比较? (4)假定每个关键字的查找概率相等,求查找成功时的平均查找长度。 7. 选取哈希函数H(key)=key mod 7, 用链地址法解决冲突。试在0-6的散列地址空间内对关键字序列{31,23,17,27,19,11,13,91,61,41}构造哈希表,并计算在等概率下成功查找的平均查找长度。 8. 已知长度为11的表(xal,wan,wil,zol,yo,xul,yum,wen,wim,zi,yon),按表中元素顺序依次插入一棵初始为空的平衡二叉排序树,画出插入完成后的平衡二叉排序树,并求其在等概率的情况下查找成功的平均查找长度。 9.对下面的关键字集{30,15,21,40,25,26,36,37}若查找表的装填因子为0.8,采用线性探测再散列方法解决冲突,做: (1)设计哈希函数;(2)画出哈希表; (3)计算查找成功和查找失败的平均查找长度 10.试为下列关键字设计哈希表,要求所设计的表在查找成功时的平均查找长度不超过2.0。并请验证你造的哈希表的实际平均查找长度是否满足要求。(CHA,CAI,LAN,WEN,LONG,ZHAO,WU,LIU,CHEN,LI,W ANG,CAO,YUN,CHANG,YANG) 11. 设a,b,c,d,e五个字符的编码分别为1,2,3,4,5,并设标识符依以下次序出现:ac,bd,aa,be,ab,ad,cd,bc,ae,ce。要求用哈希(Hash)方法将它们存入具有10个位置的表中。 (1)将上述关键字(标识符)构造一个哈希函数,使得发生冲突尽可能地少;(2)线性探测再散列法解决冲突。 写出上述各关键字在表中位置。

数据结构(查找)习题与答案

一、单选题 1、对于查找表(13,27,38,49,50 ,65,76,97)采用顺序查找,在等概率情况下查找成功的平均查找长度是()。 A.4.5 B.9 C.4 D.8 正确答案:A 2、在关键字序列(10,20,30,40,50)中采用折半查找20,依次与()关键字进行了比较。 A.30,10,20 B.20 C.30,20 D.40,20 正确答案:A 3、在关键字序列(8,12,20,25,33)中,采用二分查找25,关键字之间比较需要()次。 A.2 B.1 C.3 D.4 正确答案:A 4、对于长度为11的有序表,按折半查找,在等概率情况下查找成功时,其平均查找长度是()。 A.3 B.4 C.1 D.2 正确答案:A

5、对于长度为11的有序表,按折半查找,在查找失败时,待查找值域表中关键字比较的次数是()。 A.3次或4次 B.2次或3次 C.4次或5次 D.1次或2次 正确答案:A 6、对于长度为n的有序表,按折半查找,在等概率情况下查找成功平均时间复杂度是()。 A.O(㏒n) B.O(n) C.O(1) D.O(n㏒n) 正确答案:A 7、索引顺序查找也叫分块查找,其查找过程分为是()个步骤。 A.1 B.3 C.4 D.2 正确答案:D 8、对于长度为n的关键字序列创建一颗二叉排序树,该树可能的最大高度是()。 A.n+1 B.n-1 C.㏒n D.n 正确答案:D

9、对于关键字序列(30,25,40,35,45),按序列次序创建一颗二叉排序树,在等概率情况下查找成功时,其平均查找长度是()。 A.8/3 B.11/5 C.8 D.11 正确答案:B 10、影响散列查找时间效率的主要因素()。 A.仅与散列表中实际元素个数相关 B.仅与散列表长相关 C.与散列表长和散列表中实际元素个数均相关 D.与散列表长和散列表中实际元素个数均不相关 正确答案:C 11、一组关键字序列为(27,17,9,19,16,43,53,8,63),用哈希函数 H(key)=key MOD 8和链地址法处理冲突,查找关键字43,与散列表中关键字进行了()次比较。 A.3 B.6 C.4 D.5 正确答案:A 12、设哈希表下标为0~15,哈希函数为H(key)=key MOD 13,其中key为关键字,MOD为取余数运算,处理冲突方法为线性探查法,对于关键字序列为(22,18,38,39,48,35,9,64,29),建立哈希表后,关键字9的在哈希表的位置是()。 A.13 B.9 C.11 D.15

查找练习题(答案)

查找》练习题 一、单项选择题 1. 若查找每个元素的概率相等,则在长度为n 的顺序表上查找任一元素的平均查找长度为( ) 。 A. n B. n+1 C. (n-1)/2 D. (n+1)/2 2. 对于长度为9 的顺序存储的有序表,若采用折半查找,在等概率情况下的平均查找长度为( ) 。 A. 20/9 B. 18/9 C. 25/9 D. 22/9 3. 对于长度为18 的顺序存储的有序表,若采用折半查找,则查找第15 个元素(从1 开始 数) 的比较次数为( )。 A. 3 B. 4 C. 5 D. 6 4. 对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用折半查找,则查找元素 26 的比较次数为( )。 A. 2 B. 3 C. 4 D. 5 5. 对具有n 个元素的有序表采用折半查找,则算法的时间复杂度为( ) 。 2 A. O(n) B. O(n 2) C. O(1) D. O(log 2n) 6. 在索引查找中,若用于保存数据元素的主表的长度为144,它被均分为12子表,每个子表的长度均为12,则索引查找的平均查找长度为( ) 。 A. 13 B. 24 C. 12 D. 79 7. 从具有n 个结点的二叉排序树中查找一个元素时,在平均情况下的时间复杂度大致为 ( ) 。 2 A. O(n) B. O(1) C. O(log 2n) D. O(n 2) 8. 从具有n个结点的二叉排序树中查找一个元素时,在最坏情况下的时间复杂度为( )。 A. O(n) B. O(1) C. O(log 2n)2 D. O(n 2) 9. 若根据查找表(23,44,36,48,52,73,64,58)则元素64的哈希地址为( )。建立哈希表, 采用h(K)=K%13 计算哈希地 址, A. 4 B. 8 C. 12 D. 13 10.若根据查找表建立长度为m的哈希表,采用线性探测法处理冲突,假定对一个元素第次计算的哈希地址为d,则下一次的哈希地址为()。 A. d B. d+1 C. (d+1)/m D. (d+1)%m 二、填空题 1. 以顺序查找方法从长度为n 的顺序表或单链表中查找一个元素时, 平均查找长度为___ ( n+1) /2 ___ 。

数据结构(查找)习题与答案

一、单选题 1、关于折半查找,以下说法正确的是 ( ) 。 A.待查找表必须有序,可以顺序方式存储,也可以链表方式存储 B.待查找表必须有序,且只能以顺序方式存储 C.待查找表必须有序,而且必须从小到大排列 D.待查找表必须有序且表中数据必须是整型 正确答案:B 2、具有12个关键字的有序表,折半查找的平均查找长度()。 A.2.5 B.37/12 C.10/12 D.25/12 正确答案:B 3、以下适合用分块查的数据集是 ( ) 。 A.数据分成大小相等的若干块,块内数据有序 B.数据分成若干块,每块(除最后一块外)中数据个数需相同 C.数据分成若干块,块内数据必须有序,块间不必有序 D.数据分成若干块,块内数据不必有序,但块间必须有序 正确答案:D 4、分别以下列序列构造二叉排序树,以下哪一个和其他三个不同( ) 。 A.(90,65,25,110,100,107,87,85) B.(90,65,110,100,107,87,85,25) C. (90,110,65,25,87,100,107,85) D.(90,100,65,25,87,85,110,107) 正确答案:D

5、关于哈希查找,以下说法不正确的是( ) 。 A.哈希查找中,记录的存储地址是计算出来的,因而不需要比较 B.链地址法和线性探测再散列都是解决冲突的方法 C.装填因子越大,越容易产生冲突 D.哈希查找有两个关键问题:哈希函数和处理冲突的方法 正确答案:A 6、对长度为4的顺序表进行查找,查找顺序从前向后。若查找前面2个元素的概率均为1/8,查找后2个元素的概率均为3/8,则查找任一元素的平均查找长度为( )。 A.19/4 B.39/8 C.5.5 D.3 正确答案:D 7、由同一关键字集合构造的各棵二叉排序树( )。 A.形态相同,但平均查找长度不一定相同 B.形态和平均查找长度都相同 C.形态不一定相同,但平均查找长度相同 D.形态和平均查找长度都不一定相同 正确答案:D 8、100个元素进行折半查找,查找成功时最大的比较次数是()。 A.10 B.8 C.6 D.7 正确答案:D

9.3练习题及参考答案

9.3练习题及参考答案 9.3.1练习题 一、选择题 1.顺序查找一个共有n 个元素的线性表,其时间复杂度为( ),折半查找一个具有n 个元素的有序表,其时间复杂度为( )。 A.O(n) B.O(log 2n) C.O(n 2) D.(n log 2n) 2.在对长度为n 的顺序存储的有序表进行折半查找,对应的折半查找判定树的高度为( )。 A.n B. ⎣⎦)log 2n C.⎣⎦)1(log 2+n D.⎡⎤)1(log 2+n 3.采用折半查找方式查找长度为n 的线性表时,平均查找长度为( )。 A. O(n 2) B. (n log 2n) C. O(n) D. O(log 2n) 4.采用顺序查找方式查找长度为n 的线性表时,平均查找长度为( )。 A.n B.n/2 C.(n+1)/2 D.(n-1)/2 5.采用折半查找方法检索长度为n 的有序表,检索每个元素的平均比较次数( )对应判定树的高度(设高度>=2)。 A.小于 B.大于 C.等于 D.大于等于 6.已知有序表(13,18,24,35,47,50,62,83,90,115,134),当折半查找值为90的元素时,查找成功的比较次数为( )。 A .1 B. 2 C. 3 D. 4 7.对有序表{1,3,9,12,32,41,45,62,75,77,82,95,100},当折半查找值为82的结点时( )次比较后查找成功。 A .1 B. 2 C. 3 D. 8 8.对线性表进行折半查找时,要求线性必须( )。 A .以顺序方式存储 B .以链接方式存储 C .以顺序方式存储,且结点按关键字有序排序 D .以链接方式存储,且结点按关键字有序排序 9.顺序查找法适合于存储结构为( )的线性表。 A .散列存储 B. 顺序存储或链接存储 C .压缩存储 D. 索引存储 10.采用分块查找时,若线性表中共有625个元素。查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分( )个结点最佳。 A .10 B. 25 C. 6 D. 625 11.在顺序存储的线性表(R[0]~R[29])上进行顺序查找的平均查找长度为( ),进行折半查找的平均查找长度为( ),进行分块查找(设等分为5块)的平均查找长度为( )。 (1)A .15 B. 15.5 C. 16 D. 20 (2)A .4 B. 62/15 C. 64/15 D. 25/6 (3)A .6 B. 11 C. 5 D. 6.5 12.从键盘依次输入关键字的值:t,u,r,b,o,p,a,s,c,l.建立二叉排序树,则其先序遍历序列为( ),中序遍序列为( )。 A .abcloprstu B.alcpobsrut C.trbaoclpsu D.trusaocpl

国开作业数据结构(本)-单元测试82参考(含答案)

题目:线性表只有以()方式存储,才能进行折半查找。 选项A:顺序 选项B:二叉树 选项C:关键字有序的 选项D:链接 答案:顺序 题目:有序表为{2,4,10,13,33,42,46,64,76,79,85,95,120},用折半查找值为85的结点时,经()次比较后成功查到。 选项A:2 选项B:4 选项C:1 选项D:8 答案:4 题目:采用顺序查找法对长度为n(n为偶数)的线性表进行查找,采用从前向后的方向查找。在等概率条件下成功查找到前n/2个元素的平均查找长度为()。 选项A:(2n+1)/4 选项B:(n+2)/4 选项C:n/2 选项D:(n+1)/2 答案:(n+2)/4

题目:对二叉排序树进行()遍历,可以使遍历所得到的序列是有序序列。 选项A:后序 选项B:中序 选项C:前序 选项D:按层次 答案:中序 题目:以下说法正确的是()。 选项A:二叉树中任一结点的值均大于其左孩子的值,小于其右孩子的值。则它是一棵二叉排序树。 选项B:二叉排序树中某一结点的左儿子一定小于树中任一个结点的右儿子。 选项C:二叉排序树中任一棵子树都是二叉排序树。 选项D:二叉树的根结点值大于其左子树结点的值,小于右子树结点的值,则它是一棵二叉排序树。 答案:二叉排序树中任一棵子树都是二叉排序树。 题目:对线性表进行二分查找时,要求线性表必需()。 选项A:以链接方式存储,且结点按关键字有序排列 选项B:以顺序方式存储,且结点按关键字有序排列 选项C:以链接方式存储 选项D:以顺序方式存储

答案:以顺序方式存储,且结点按关键字有序排列 题目:使用折半查找法时,要求查找表中各元素的键值必须是()排列的。 选项A:无序 选项B:递增 选项C:递减 选项D:递增或递减 答案:递增或递减 题目:已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较()次。 选项A:4 选项B:6 选项C:3 选项D:5 答案:5 题目:有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为()。 选项A:31/10 选项B:26/10 选项C:29/9

2016年02331数据结构真题精选

2016年02331数据结构真题精选 [单项选择题] 1、设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为()。 A.10,15,14,18,20,36,40,21 B.10,15,14,18,20,40,36,21 C.10,15,14,20,18,40,36,2l D.15,10,14,18,20,36,40,21 参考答案:A [单项选择题] 2、设一棵哈夫曼树共有18个叶结点,则该树有()个非叶结点。 A.18 B.19 C.17 D.16 参考答案:C [判断题] 3、线性表的逻辑顺序与物理顺序总是一致的。 参考答案:错 [单项选择题] 4、设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。 A.2,3,5,8,6 B.3,2,5,8,6 C.3,2,5,6,8 D.2,3,6,5,8 参考答案:C [单项选择题] 5、设有一个长度为32的顺序表,要在第5个元素之前插入1个元素(也就是插入元素作为新表的第5个元素),需移动元素个数为() A.25

B.28 C.5 D.6 参考答案:B [判断题] 6、线性表的顺序存储表示优于链式存储表示。 参考答案:错 [判断题] 7、栈和队列都是操作受限的线性表。 参考答案:对 [单项选择题] 8、如图所示的一个图,若从顶点g出发,按深度优先搜索法进行遍历,则可能 得到的一种顶点序列为() A.gabecdf B.gacfebd C.gaebcfd D.gaedfcb 参考答案:D [判断题] 9、二维数组是其数组元素为线性表的线性表。 参考答案:对 [判断题] 10、分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。 参考答案:对

第八章查找

第八章查找 第八章查找 一.选择题 1.对长度为n 的无序线性表进行顺序查找,则查找成功、不成功时的平均数据比较次数分别为_______。 A.n/2,n B.(n+1)/2,n-1 C.(n+1)/2,n D.(n-1)/2,n-1 2.设有一个文件有200 个记录,按分块查找法查找记录,如分成10 块,每块20 个记录,用二分查找法查索引表,用顺序查找法查块内记录,则平均查找长度为________。 A.8.4 B.10.5 C.13.4 D.16 3. 请指出在顺序表{2、5、7、10、14、15、18、23、35、41、52}中,用二分法查找关键码12 需做________次关键码比较。 A. 2 B. 3 C. 4 D. 5 4.一个有序表为{1,3,9,12,41,50,59,75,77,82,95,100},利用折半查找查找关键字为82 的结点时________次比较后查找成功。 A. 1 B. 2 C. 4 D. 8 5. 设有序顺序表中有n 个数据元素,则利用二分查找法查找数据元素X 的最多比较次数不超过________。 A.log

2n+1 B.log 2 n-1 C.log 2 n D.log 2 (n+1) 6. 设有序表中有1000 个元素,则用二分查找查找元素X 最多需要比较____次。A.25 B.10 C.7 D.1 7. 折半查找要求查找表中各元素的关键字值必须是___________排列。 A.递增或递减 B.递增 C.递减 D.无序 8. 对线性表进行折半查找时,必须要求线性表________。 A.以顺序方式存储 B.以链接方式存储 C.以顺序方式存储,且结点按关键字有序排列 D.以链接方式存储,且结点按关键字有序排列 9.顺序查找法适合于存储结构为________的线性表。 A.散列存储 B.顺序存储或链接存储 C.压缩存储 D.索引存储 10.采用顺序搜索方法查找长度为n 的顺序表时,搜索成功的平均搜索长度为________。 A.n B.n/2 C.(n-1)/2 D.(n+1)/2 11. 在二叉排序树中插入一个关键字值的平均时间复杂度为________。 A.O(n) B.O(1og 2n) C.O(nlog 2 n) D.O(n2) 12.依次插入序列(50,72,43,85,75,20,35,45,65,30)后建立的二叉搜索树中,查找元素35 要进行_____元素间的比较。

数据结构填空题

一、填空题 (每空1分,共156分) 1. 数据结构的存储结构包括顺序、〔〕、索引和散列等四种。 [答案] 2. 设关键字序列 {7,12,26,30,47,58,66,70,82,90},当用折半查找方法查找时,所需比较的次数为3次的关键字分别是〔〕。 [答案]7 26 58 82 3. 假定一个线性表为 {12, 23, 74, 55, 63, 40, 82, 36},若按key%3条件进行划分,使得同一余数的元素成 为一个子表,则包含74的子表长度为〔〕。 [答案]2 4. 和二分查找相比,顺序查找的优点是除了不要求表中数据元素有序之外,对( )结构也无特殊要求。[答案]存储 5. 设双向循环链表每个结点结构为 (data,llink,rlink),则结点*p的前驱结点的地址为( )。 [答案]p->llink 6. n个顶点的连通无向图的生成树含有( )条边。[答案] n-1 7. 在一个最大堆中,堆顶结点的值是所有结点中的( )。 [答案]最大值 8. 假定对长度n=50的有序表进行折半搜索,则对应的判定树中最底下一层的结点数为〔〕个。 [答案]19 9. 对于带头结点的链栈top,取栈顶元素的操作是〔〕。 [答案]*y=top->next->data 10. 假定一棵三叉树〔即度为3的树〕的结点个数为50,则它的最小高度为〔〕。假定树根结点的深度为0。 [答案]4 11. 二维数组是一种非线性结构,其中的每一个数组元素最多有( )个直接前驱〔或直接后继〕。[答案]两个 12. 在堆排序中,对任意一个分支结点进行调整运算的时间复杂度为( )。 [答案]O(log2n) 13. 队列的删除操作在〔〕进行。 [答案]队头〔或队首〕 14. 设图G = (V, E),V = {1, 2, 3, 4}, E = {<1, 2>, <1, 3>, <2, 4>, <3, 4>},从顶点1出发,对图G进行 广度优先搜索的序列有( )种。 [答案]2 15. 向一棵二叉搜索树中插入一个元素时,若元素的值小于根结点的值,则应把它插入到根结点的〔〕上。 [答案]左子树 16. 快速排序在平均情况下的时间复杂度为( )。[答案]O(nlog2n) 17. 由关键字序列{42,97,75,23,68,34}建成的最大堆是( )。 [答案] 97,68,75,23,42,34 18. 对于关键字序列〔12,13,11,18,60,15,7,18,25,100〕,用筛选法建堆,必须从关键字为〔〕的 结点开始。 [答案] 60 19. 从有序表(12,18,30,43,56,78,82,95)中折半搜索元素56时,其搜索长度为〔〕。 [答案] 3

查找表习题

一、单项选择题 3.对于长度为18的顺序存储的有序表,若采用折半查找,则查找第15个元素的比较次数为( B )。 A. 3 B. 4 C. 5 D. 6 4.对于顺序存储的有序表(5,12,20,26,37,42,46,50,64),若采用折半查找,则查找元素26的比较次数为( C )。 A. 2 B. 3 C. 4 D. 5 5.对具有n个元素的有序表采用折半查找,则算法的时间复杂度为( D )。 A. O(n) B. O(n2) C. O(1) D. O(log2n) 8.从具有n个结点的二叉排序树中查找一个元素时,在平均情况下的时间复杂度大致为( C )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 9.从具有n个结点的二叉排序树中查找一个元素时,在最坏情况下的时间复杂度为( A )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 11.若根据查找表(23,44,36,48,52,73,64,58)建立哈希表,采用h(K)=K%13计算哈希地址,则元素64的哈希地址为( C )。 A. 4 B. 8 C. 12 D. 13 12.若根据查找表(23,44,36,48,52,73,64,58)建立哈希表,采用h(K)=K%7计算哈希地址,则哈希地址等于3的元素个数( B )。 A. 1 B. 2 C. 3 D. 4 13.若根据查找表建立长度为m的哈希表,采用线性探测法处理冲突,假定对一个元素第一次计算的哈希地址为d,则下一次的哈希地址为( D )。 A. d B. d+1 C. (d+1)/m D. (d+1)%m 二、填空题 1. 以顺序查找方法从长度为n的顺序表或单链表中查找一个元素时,平均查找长度为___(n+1)/2_____,时间复杂度为__O(n)______。 6. 从有序表(12,18,30,43,56,78,82,95)中分别折半查找43和56元素时,其比较次数分别为____1____和____3____。 7. 假定对长度n=50的有序表进行折半查找,则对应的判定树高度为___5_____,最后一层的结点数为___19_____。 10. 在一棵二叉排序树中,每个分支结点的左子树上所有结点的值一定__小于等于____该结点的值,右子树上所有结点的值一定____大于____该结点的值。 11. 对一棵二叉排序树进行中序遍历时,得到的结点序列是一个___递增序列_____。 12. 从一棵二叉排序树中查找一个元素时,若元素的值等于根结点的值,则表明______查找成功_,若元素的值小于根结点的值,则继续向____左子树____查找,若元素的值大于根结点的值,则继续向___右子树_____查找。 13. 向一棵二叉排序树中插入一个元素时,若元素的值小于根结点的值,则接着向根结点的___左子树_____插入,若元素的值大于根结点的值,则接着向根结点的__右子树______插入。 16. 假定对线性表(38,25,74,52,48)进行哈希存储,采用H(K)=K %7作为哈希函数,采用线性探测法处理冲突,则在建立哈希表的过程中,将会碰到___5_____次存储冲突。 17. 假定对线性表(38,25,74,52,48)进行哈希存储,采用H(K)=K %7作为哈希函数,

相关主题
相关文档
最新文档