1、用二分(对半)查找表的元素的速度比用顺序法( 不确定 )
解析:
当查找表中元素个数为1个或2个时,二分法和顺序法速度相等;当元素个数大于2个时,二分法更快。(前提是有序表)
2、二叉查找树的查找效率与二叉树的树型有关,在()时其查找效率最低
正确答案: C 你的答案: C (正确)
结点太多
完全二叉树
是单枝树
节点太复杂当二叉查询树变成一条链表效率最差。所以有AVL平衡树 限制节点深度差不超过1,避免产生链表一般的树。
3、已知 10 个元素 (54,28,16,34,73,62,95,60,26,43) ,按照依次插入的方法生成一棵二叉排序树,查找值为 62 的结点所需比较次数为()
正确答案: B 你的答案: C (错误)
4
3
2
5
构成排序二叉树需满足条件:做子树比根节点小,根节点比右子树节点小,递归下去也满足。上图就是排序之后的二叉树,明显查找62需要比较54,73,62,共3次
4、对于下列二分搜索算法,正确的是( )
public static int binarySearch(int[] a, int x, int n)
{
if(n > 0 && x >= a[0])
{
int left = 0, right = n-1;
while(left < right)
{
int middle = (left + right + 1) / 2;
if(x < a[middle])
right = middle - 1;
else left = middle;
}//while
if(x == a[left]) return left;
}//if
return –1;
}
5、关于红黑树和AVL树,以下哪种说法不正确?
正确答案: D 你的答案:
两者都属于自平衡二叉树
两者查找,插入,删除的时间复杂度相同
包含n个内部节点的红黑树的高度是O(log(n))
JDK的TreeMap是一个AVL的实现
红黑树和avl树都属于自平衡二叉树;
两者查找、插入、删除的时间复杂度相同;
包含n个内部结点的红黑树的高度是o(logn);
TreeMap是一个红黑树的实现,能保证插入的值保证排序