【发布时间】:2015-02-16 08:12:15
【问题描述】:
为什么人们使用二叉搜索树? 为什么不简单地对从最低到最高排序的数组进行二进制搜索? 对我来说,插入/删除成本似乎是一样的,为什么要让 max/min heapify 等过程复杂化?
仅仅是因为数据结构中需要随机访问吗?
【问题讨论】:
-
你没有在这里给出 any 上下文 - 不同的数据结构用于具有不同要求的不同情况。你说的是什么情况?
为什么人们使用二叉搜索树? 为什么不简单地对从最低到最高排序的数组进行二进制搜索? 对我来说,插入/删除成本似乎是一样的,为什么要让 max/min heapify 等过程复杂化?
仅仅是因为数据结构中需要随机访问吗?
【问题讨论】:
插入成本不一样。如果你想在数组中间插入一个元素,你必须将所有元素移动到插入元素的右侧一个位置,这样做的努力与数组的大小成正比:O(N)。使用自平衡二叉树,插入的复杂度要低得多:O(ln(N))。
【讨论】: