二叉排序樹(Binary Sort Tree),首先它是壹棵樹,“二叉”這個描述已經很明顯了,就是樹上的壹根樹枝開兩個叉,於是遞歸下來就是二叉樹了(下圖所示),而這棵樹上的節點是已經排好序的,具體的排序規則如下:
若左子樹不空,則左子樹上所有節點的值均小於它的根節點的值
若右子樹不空,則右字數上所有節點的值均大於它的根節點的值
它的左、右子樹也分別為二叉排序數(遞歸定義)
從圖中可以看出,二叉排序樹組織數據時,用於查找是比較方便的,因為每次經過壹次節點時,最多可以減少壹半的可能,不過極端情況會出現所有節點都位於同壹側,直觀上看就是壹條直線,那麽這種查詢的效率就比較低了,因此需要對二叉樹左右子樹的高度進行平衡化處理,於是就有了平衡二叉樹(Balenced Binary Tree)
所謂“平衡”,說的是這棵樹的各個分支的高度是均勻的,它的左子樹和右子樹的高度之差絕對值小於1,這樣就不會出現壹條支路特別長的情況。於是,在這樣的平衡樹中進行查找時,總***比較節點的次數不超過樹的高度,這就確保了查詢的效率(時間復雜度為O(logn))