选择题 数据结构 折半搜索与二叉排序树的时间性能( )。

发布网友 发布时间:2022-04-28 10:32

我来回答

3个回答

热心网友 时间:2023-09-26 12:35

D。

折半查找复杂度恒定是log2n,但二叉排序树最优时间复杂度是log2n,只有平衡二叉树才是log2n。

折半查找:必须要求记录有序,采用顺序存储,利用这个特点,所以折半查找的效率也比顺序查找高,对于数量非常大时,非常快,时间复杂度为O(logN)。

二叉查找树:若它的左子树不为空,则左子树上所有节点的值均小于根节点。若它的右子树不为空,则右子树上所有节点的值均小于根节点,它的左右子树都是二叉查找树。

扩展资料:

二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x。

时间复杂度即是while循环的次数。

总共有n个元素,

渐渐跟下去就是n,n/2,n/4,....n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数

由于你n/2^k取整后>=1

即令n/2^k=1

可得k=log2n,(是以2为底,n的对数)

所以时间复杂度可以表示O(h)=O(log2n)

参考资料来源:百度百科-二分查找

热心网友 时间:2023-09-26 12:35

C.有时不相同。

折半查找:必须要求记录有序,采用顺序存储,利用这个特点,所以折半查找的效率也比顺序查找高,对于数量非常大时,非常快,时间复杂度为O(logN)。

二叉查找树:如果它的左子树不是空的,那么左子树中的所有节点都小于根节点。如果它的右子树不是空的,那么右子树中所有节点的值都小于根节点的值,它的左子树和右子树都是二叉搜索树。

因此,二叉排序树不一定是平衡树。它只需要左右子树和根节点之间的大小关系。但是,由于没有左右子树层次差异的约束,所以通过二叉排序树搜索可能不满足logn。

例如,有多个左子树的交叉排序树。只有当它是一棵平衡二叉排序树时,其搜索时间的性能与二分搜索相似。

扩展资料:

二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x。

时间杂度即是while循环的次数。

总共有n个元素,

渐渐跟下去就是n,n/2,n/4,....n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数

由于你n/2^k取整后>=1

即令n/2^k=1

可得k=log2n,(是以2为底,n的对数)

所以时间杂度可以表示O(h)=O(log2n)

参考资料来源:百度百科-二分查找

热心网友 时间:2023-09-26 12:36

折半查找复杂度恒定是log2n,但二叉排序树最优时间复杂度是log2n,只有平衡二叉树才是log2n,

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com