首页/ 题库 / [单选题]用递归算法实现n个相异元素构成的有序序列的答案

用递归算法实现n个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为______。

单选题
2022-01-13 00:43
A、n
B、n/2
C、log2n
D、log2(n+1)
查看答案

正确答案
D

试题解析
解析:二分查找亦称折半查找,其基本思想:设查找表的元素存储在一维数组r[1..n]中,首先将待查的key值与表r中间位置上(下标为mid)的记录的关键字进行比较,若相等,则查找成功:若key>r[mid].key,则说明待查记录只可能在后半个子表r[mid+1..n](注意:是mid+1,而不是mid)中,下一步应在后半个子表中再进行折半查找,若keyr[mid].key,则说明待查记录只可能在前半个子表r[1..mid-1](注意:是mid-1,而不是mid)中,下一步应在前半个子表中再进行折半查找,这样通过逐步缩小范围,直到查找成功或予表为空时失败为止。   在表中的元素已经按关键字递增(或递减)的方式排序的情况下,才可进行折半查找。   等概率情况下顺序查找成功的平均查找长度为:当n值较大时,ASLbs≈log2(n+1)-1。

标签:
感兴趣题目
用递归算法实现n个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为______。
递归算法一般需要利用______实现。
设计在有序表A[n]中按二分查找关键字为K的递归和非递归算法。
若一个栈以向量V[1..n)存储,且空栈的栈顶指针top为n+1,则将元素x入栈的正确操作是______。
若一个栈以向量V[1..n]存储,且空栈的栈顶指针top为n+1,则将元素x入栈的正确操作是______。
当利用大小为N的数组顺序存储一个栈时,假定用栈顶指针top=N+1表示栈空,则向这个栈插入一个元素时,首先应执行______语句修改top指针。
设栈S的初始状态为空,栈的容量为5,若入栈的元素的顺序是e1、e2、e3、e4、e5,则出栈元素的顺序不可能是 ______。
在待排序的元素序列基本有序的前提下,效率最高的排序算法是______。
下面 ______ 是正确的递归函数,它保证对所有的参数能够结束。
某顺序存储的表格,其中有90000个元素,已按关键字递增有序排列,现假定对各个元素进行查找的概率是相同的,并且各个元素的关键字皆不相同。用顺序查找法查找时,平均比较次数约为__(1)__,最大比较次数为__(2)__。 现把90000个元素按排列顺序划分成若干组,使每组有g个元素(最后一组可能不足g个)。查找时,先从第一组开始,通过比较各组的最后一个元素的关键字,找到欲查找的元素所在的组,然后再用顺序查找法找到欲查找的元素。 在这种查找法中,使总的平均比较次数最小的g是__(3)__,此时的平均比较次数是__(4)__。当g的值大于等于90000时,此方法的查找速度接近于__(5)__。 空白(1)处应选择()
在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是__(1)__。从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为__(2)__。设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用__(3)__排序法。空白(1)处应选择()
某顺序存储的表格,其中有90000个元素,已按关键字递增有序排列,现假定对各个元素进行查找的概率是相同的,并且各个元素的关键字皆不相同。用顺序查找法查找时,平均比较次数约为__(1)__,最大比较次数为__(2)__。 现把90000个元素按排列顺序划分成若干组,使每组有g个元素(最后一组可能不足g个)。查找时,先从第一组开始,通过比较各组的最后一个元素的关键字,找到欲查找的元素所在的组,然后再用顺序查找法找到欲查找的元素。 在这种查找法中,使总的平均比较次数最小的g是__(3)__,此时的平均比较次数是__(4)__。当g的值大于等于90000时,此方法的查找速度接近于__(5)__。 空白(5)处应选择()
相关题目
对有18个元素的有序表作二分查找,则查找A[3]的比较序列的下标依次为( )。
二分搜索算法是利用_______________实现的算法
对n个元素的有序表A[1..n]进行二分(折半)查找,则成功查找到表中的任意一个元素时,最多与A中的()元素进行比较。
若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用__(1)__算法,因为__(2)__。空白(2)处应选择()
若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用__(1)__算法,因为__(2)__。空白(1)处应选择()
实现递归调用属于______的应用。
一些重要的程序语言(台C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用______。
采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为______。
对采用二分查找法进行查找运算的查找表,要求按______方式进行存储
线性表进行二分查找法查找,其前提条件是______。
若长度为n的线性表采用顺序存储结构,那么删除它的第i个元素,需要它依次向前移动 ______个元素。
设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为______。
设有栈S和队列Q,其初始状态为空,元素a、a、 a、a、a、a依次入栈,出栈的元素进入队列Q,若6个元素出队列的顺序是a、a、a、a、a、,则栈的容量至少是______。
对具有n个元素的顺序表(采用顺序存储的线性表)进行______操作,其耗时与n的大小无关。
设有100个元素,用折半查找法进行查找时,最大比较次数是_____。
设有一个己按各元素的值排好序的线性表,长度大于2,对给定的值k,分别用顺序查找法和二分查找法查找一个与k相等的元素,比较的次数分别为s和b,在查找不成功的情况下,正确的s和b的数量关系是 ______。
在n(n>0)个元素的顺序栈中删除,1个元素的时间复杂度为______。
将一个递归算法改为对应的非递归算法时,通常需要使用______。
已知递归函数f(n)的功能是计算1+2+…+n,且n≥1,应采用的代码段是______。
用递归算法实现n个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为(11)。
广告位招租WX:84302438

免费的网站请分享给朋友吧