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