我正在閱讀二叉搜索樹,並在想爲什麼我們需要BST?據我所知,所有的事情都可以使用簡單的排序數組來實現。對於例如 - 爲了構建具有n個元素的BST,我們需要n*O(log n)
時間,即O(nlog n)
,並且查找時間是O(log n)
。但是這個東西也可以用數組來實現。我們可以有一個排序數組(需要O(nlog n)
時間),查找時間也是O(log n)
,即二進制搜索算法。那麼我們爲什麼還需要另一個數據結構呢?是否有任何其他使用/應用BST使它們如此特別?爲什麼二進制搜索樹?
- Ravi
插入/從陣列版本中刪除的效率是多少?如果它涉及到移動陣列的所有其他元素,那可能是昂貴的。 – 2010-10-14 15:31:11
好的...找到新的/現有元素的正確位置仍然是O(log n),但是移位會成爲一個問題......但僅僅是這一個......根據我讀過的文本,似乎他們(BST )很特別?我想知道更多關於使他們如此特別的事情。 – 2010-10-14 15:40:47
[binary search vs binary search tree]可能的重複(http://stackoverflow.com/questions/5968937/binary-search-vs-binary-search-tree) – nawfal 2014-06-15 08:38:37