二分法查找:
『在有序數組的基礎上通過折半方法不斷縮小查找范圍,直至命中或者查詢失敗。』
二分法的存儲要求:要求順序存儲,以便於根據下標隨機訪問
二分法的時間效率:O(Log(n))
二分法的空間效率:原地查詢 O(1)
二分法對應的搜索樹是確定的。
二叉排序樹查找:
『借助二叉排序樹進行搜索,但因為所建立的樹本身不一定是軸對稱的,所以每次比較並不能確保減小一半范圍。』
二叉樹的存儲要求:需要樹形結構,相比順序存儲需要占用更多的空間,但也有鏈接型數據結構靈活可拓展的有點。
二叉排序樹查找的時間復雜度:平均情況下,O(Log(n)),但在單支樹的情況下就變成了順序遍歷搜素,復雜度退化為O(n)。
二叉樹的空間復雜度:因為需要建立排序二叉樹,所以空間復雜度為O(n)
插入節點的平均時間復雜度為O(LogN),不過這里我們主要談的是查找,所以其他方面暫且不聊了。后面為了減小時間復雜度,產生了二叉平衡樹用於優化二叉樹查找。
這里有一個經常提到的概念——查找長度,又分為失敗查找長度,成功查找長度,即是為了得出查找結果需要進行的元素對比次數,要借助對應搜索樹和樹高來分析。