二分查找具有很高的效率,但使用该算法的前提是要求()。
A.顺序存储
B.顺序存储并预先有序
C.链式存储
D.链式存储并预先有序
A.顺序存储
B.顺序存储并预先有序
C.链式存储
D.链式存储并预先有序
第2题
A.6,9,12,14,23,25
B.1,4,7,15,13
C.15,14,12,7,2,3
D.34,25,17,9,10,3
第5题
二分查找算法要求被查找的表是()
A.键值有序的链表
B.键值不一定有序的链表
C.键值有序的顺序表
D.键值不一定有序的顺序表
第6题
设采用实现如教材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)若待查找的整数按照其它的随机规律分布,以上结论又应如何调整?
第7题
比如,在仅能使用直尺的情况下,可通过反复实验,用鸡蛋刚能摔碎的下落高度(比如精确到毫米)来度量蛋壳的硬度。尽管可以假定在破裂之前蛋壳的硬度保持不变,但毕竟破裂是不可逆的。故若仅有一枚鸡蛋,则我们不得不从0开始,以1毫米为单位逐步增加下落的高度,若蛋壳的硬度不超过n毫米,则需要进行o(n)次实验。就效率而言,这等价于退化到无序向量的顺序查找。
a)若你拥有两枚鸡蛋(假定它们硬度完全相同),所需实验可减少到多少次?试给出对应的算法;
b)进一步地,如果你拥有三枚鸡蛋呢?
c)一般地,如果共有d枚鸡蛋可用呢?
第8题
第10题