首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不平衡二叉树中的搜索操作

不平衡二叉树中的搜索操作
EN

Stack Overflow用户
提问于 2022-05-07 14:30:48
回答 1查看 39关注 0票数 0

我无法理解和想到一种情况,即在不平衡的二叉树中的搜索操作可能比在平衡的二叉树中的搜索操作更有效。如果二叉树是高度倾斜的,那么它可能以链表的形式出现,此时运行时的复杂度将是O(n)。有可能发生这种情况吗?我的教授坚持说有一些,但我根本想不出有什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-07 15:23:07

在某些情况下,不平衡的树可能会更好。以以下两棵树为例:

二进制搜索树背后的思想是,如果您同样有可能搜索节点集中的任何值,那么保持树的平衡就会最小化您必须做的平均比较数。

例如,如果我搜索每个值(1、2、3、4、5、6),那么我希望搜索左边的平衡树。在平衡树上执行该序列搜索将导致(3 +2+3+1+2+ 3) = 14比较。在不平衡树上执行相同的搜索序列将导致(1 +2+3+4+5+ 6) = 21比较。

但如果我知道我需要寻找的值不是均匀分布的,而是偏低的呢?如果我想搜索值(1,2,1,2,1,3)怎么办?那么哪棵树会提供更好的性能呢?

在平衡树上执行这些搜索将导致(3 +2+3+2+3+ 3) = 16比较。不错,但是不平衡树上相同的搜索序列只需(1 +2+1+2+1+ 3) = 10比较。

这是一个精心设计的例子,但它表明,了解您的数据和了解人们可能经常搜索的值,可以帮助您为该数据选择正确的安排,以获得更好的性能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72153461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档