我正在阅读二叉搜索树,并思考为什么我们需要BST?据我所知,所有的事情都可以通过简单的有序数组来实现。例如,构建具有n个元素的BST需要
n*O(log n)
时间,即O(nlog n)
,并且查找时间为O(log n)
。但是这个东西也可以使用数组来实现。我们可以拥有一个排序的数组(需要O(nlog n)
时间),在其中查找时间也是O(log n)
,即二进制搜索算法。那么我们为什么需要另一种数据结构呢?还有其他BST的用途/应用,使它们如此特殊吗?