我想了解一下我对二叉树,特别是二叉搜索树的理解。浏览维基百科向我展示了以下信息(http://en.wikipedia.org/wiki/Binary_search_tree):
"二进制搜索树将其键保持在排序顺序中,以便查找和其他操作可以使用二进制搜索原理:在树中查找键(或插入新键的位置)时,它们从树到树遍历树,与存储在树节点中的密钥进行比较,并根据比较决定继续在左或右子树中搜索。平均而言,这意味着每次比较都允许操作跳过树的一半以上,因此每次查找/插入/删除都需要与树中存储的项目数的对数成比例的时间。这比在未排序数组中按键查找项目所需的线性时间要好得多,但比哈希表上的相应操作要慢。"
有人可以详细说明/解释该描述的以下部分:
1)"平均而言,这意味着每次比较都允许操作跳过树的一半以上,这样每次查找/插入/删除所花费的时间与存储在数据中的项目数的对数成比例。 。树"
2)[来自最后一句]" ...但比哈希表上的相应操作慢。"
答案 0 :(得分:0)
1)"平均而言#34;仅在BST 平衡时才适用,即左右子树包含相同数量的节点。这使得搜索O(log n)操作,因为在每次迭代时,您可以粗略地丢弃剩余项目的一半。
2)在哈希表上,搜索,插入和删除都需要预期的O(1)时间。