【发布时间】:2015-06-16 09:20:08
【问题描述】:
我正在尝试复习一下我对二叉树,尤其是二叉搜索树的理解。翻阅维基百科向我展示了以下信息 (http://en.wikipedia.org/wiki/Binary_search_tree):
“二叉搜索树保持它们的键是有序的,这样查找和其他操作就可以使用二叉搜索的原理:在树中寻找一个键(或插入新键的地方)时,它们会遍历树从根到叶,与存储在树的节点中的键进行比较,并根据比较决定继续在左子树或右子树中搜索。平均而言,这意味着每次比较允许操作跳过一半以上的树,因此每次查找/插入/删除所花费的时间与存储在树中的项目数的对数成正比。这比在未排序数组中按键查找项目所需的线性时间要好得多,但比哈希表的相应操作。”
有人可以详细说明/解释该描述的以下部分吗:
1) “平均而言,这意味着每次比较都允许操作跳过树的一半,因此每次查找/插入/删除所花费的时间与树中存储的项目数的对数成正比。”
2) [从最后一句]“……但比哈希表上的相应操作慢。”
【问题讨论】:
-
呃,(1)中的文字措辞真的很糟糕。我会建议另一个参考。
标签: algorithm sorting search data-structures binary-search-tree