为提高查找效率,对有65025个元素的有序顺序表建立索引顺序结构,在最好情况下查找到表中已有元素,需要执行( )次关键字比较。

admin2019-03-15  92

问题 为提高查找效率,对有65025个元素的有序顺序表建立索引顺序结构,在最好情况下查找到表中已有元素,需要执行(    )次关键字比较。

选项 A、10
B、14
C、20
D、21

答案B

解析 首先需要知道折半查找成功的平均查找长度为log2(n+1)-1。
    为使查找效率最高,可对有65025个元素的有序顺序表分块,每块有=255个元素。为每一块建立一个索引项,索引表共255个索引项。若对索引表和每一块都采用折半查找,则查找效率最高,计算可得
ASLIndexSeqSearch=ASLIndex+ASLBlock=log2(255+1)-1+log2(255+1)-1=14
    下面补充一些关于折半查找的概念。
    补充(1):折半查找的时间复杂度为O(log2n)。
    补充(2):折半查找是基于随机存储方式的算法,必须用顺序表而不能用链表。
    补充(3):对于折半查找,假设h表示判定树的高度,如果有n个元素,则判定树的高度为
    h=[log2(n+1)]或者h=[log2(n+1)]+1
转载请注明原文地址:https://kaotiyun.com/show/eBCi777K
0

随机试题
最新回复(0)