给定n个节点的平衡二叉搜索树,每个节点的值是整数。给定一个整数,在树中找出与该整数最接近的节点的最小算法复杂度是()
A.Θ(logn)
B.Θ(n^2)
C.Θ(nlogn)
D.Θ(n)
E.Θ(1)
F.Θ(log*n)
正确答案是 A
平衡二叉树的时间复杂度是log(n),如果二叉树的元素个数为n,那么不管是对树进行插入节点、查找、删除节点都是log(n)次循环调用就可以了。它的时间复杂度相对于其他数据结构如数组等是最优的。
枚举最后在树中找到的树和已知数的关系,一种是大于,一种是小于等于,这两种情况分别可以做到0(lgn)
题目中的logn都是只以2为底的对数,,,,在二叉排序树中查找一个数时,当这棵二叉树是平衡二叉树时,可以获得最佳的时间复杂度logn,,,题目想问的是二叉排序树中时间复杂度最小是多少吧,,,另外,如果要找最接近x的整数,是先找到第一个比x大的结点k,然后拿 k 跟 k的父亲结点 跟 x做比较,,,
我也觉得要O(n)啊,考虑这样一种情况,根节点是10,左子树为1,右子树为100,现在找11,最接近的明显是1,但是用二叉查找树的算法就会找到100。所以只能一个个的遍历看。
列举一款你常用的移动APP,并分析他的最核心功能、满足的需求、超预期的功能以及竞争优势和发展趋势
从浏览器输入URL到展示页面的全流程是怎么样的?
B2C网站上促销价格出错了,如何做危机公关?
基于TCP协议建立连接和结束连接的过程
枚举最后在树中找到的树和已知数的关系,一种是大于,一种是小于等于,这两种情况分别可以做到0(lgn)
题目中的logn都是只以2为底的对数,,,,
在二叉排序树中查找一个数时,当这棵二叉树是平衡二叉树时,可以获得最佳的时间复杂度logn,,,
题目想问的是二叉排序树中时间复杂度最小是多少吧,,,
另外,如果要找最接近x的整数,是先找到第一个比x大的结点k,然后拿 k 跟 k的父亲结点 跟 x做比较,,,
我也觉得要O(n)啊,考虑这样一种情况,根节点是10,左子树为1,右子树为100,现在找11,最接近的明显是1,但是用二叉查找树的算法就会找到100。所以只能一个个的遍历看。