簡體   English   中英

排序列表或二進制搜索樹

[英]Sorted List or Binary Search Tree

如果搜索排序的列表是O(log2 n),搜索平衡的BST也是O(log2 n),則應在假定以下條件的情況下使用:

  1. 元素將按未排序的順序接收,然后在所有元素加載后進行排序
  2. 沒有元素將被刪除

應該使用哪個,為什么使用(排序列表或二進制搜索樹)?

謝謝。

如果只對數據排序一次然后僅進行搜索,則兩種方法的漸近復雜度將相同。

我認為排序列表的實際運行時間和內存消耗要低得多,索引到數組的速度非常快。

話雖如此,也許使用哈希表對您會更好。 創建它是O(n)(與先前方法的O(n log n)比較),而檢索一項是O(1)(與O(log n)比較)。

設置這兩個(/全部三個)然后對它們進行基准測試是否過於困難? 您可以使用包裝器類從中提取數據結構,然后在基准之間更改包裝器類。 當然,我假設您在這里有無限的時間。 :)

它們都將是O(n log n)進行創建/排序。 全部為O(log n)進行檢索。

實際上,排序的二叉樹可以表示為排序的數組,只要它是完整的完美樹即可。 因此,從本質上講,它們是完全相同的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM