下列查找算法中,平均查找长度与元素个数n不直接相关的查找方法是()。
A.分块查找
B.顺序查找
C.二分查找
D.散列查找
A.分块查找
B.顺序查找
C.二分查找
D.散列查找
设采用实现如教材48页代码2.21所示的二分查找binSearch()算法版本A,针对独立均匀分布于[0,2n]内的整数目标,在固定的有序向量(1,3,5,...,2n-1)中查找。
a)若将平均的成功和失败查找长度分别记作S和F,试证明:(S+1)•n=F•(n+1);
b)上述结论,是否适用于binSearch()算法的其它版本?为什么?
c)上述结论,是否适用于fibSearch()算法的各个版本?为什么?
d)若待查找的整数按照其它的随机规律分布,以上结论又应如何调整?
如果我们采用二分查找法查找一个长度为n的有序表,则查找每个元素的平均比较次数()对应的判定树的高度(假设树高h≥2)。
A.大于
B.小于
C.等于
D.无法确定
除留余数法构造哈希函数和线性探测法处理冲突,试求出每一元素在哈希表中的初始哈希地址和最终哈希地址,画出最后得到的哈希表,求出平均查找长度。
下面四种排序方法中,平均查找长度最小的是()
A.插入排序
B.选择排序
C.快速排序
D.归并排序
A.最先适应分配算法
B.最优适应分配算法
C.最坏适应分配算法
D.最快适应分配算法
比如,在仅能使用直尺的情况下,可通过反复实验,用鸡蛋刚能摔碎的下落高度(比如精确到毫米)来度量蛋壳的硬度。尽管可以假定在破裂之前蛋壳的硬度保持不变,但毕竟破裂是不可逆的。故若仅有一枚鸡蛋,则我们不得不从0开始,以1毫米为单位逐步增加下落的高度,若蛋壳的硬度不超过n毫米,则需要进行o(n)次实验。就效率而言,这等价于退化到无序向量的顺序查找。
a)若你拥有两枚鸡蛋(假定它们硬度完全相同),所需实验可减少到多少次?试给出对应的算法;
b)进一步地,如果你拥有三枚鸡蛋呢?
c)一般地,如果共有d枚鸡蛋可用呢?
成功;否则确定下一步搜索的区间为4(i-1)+1到4i-1.然后在此区间内与第4i-2个元素作比较,若相等则搜索成功,否则继续与第4i-3或4i-1个元索进行比较,直到搜索成功。
(1)给出实现算法。
(2)试面出当表长n=16时的判定树,并推导此搜索方法的平均搜索长度(考虑搜索元素等概率和n%4=0的情况)。