有沒有一種方法來建立一個平衡二叉搜索樹?建立一個平衡二叉搜索樹
例子:
1 2 3 4 5 6 7 8 9
5
/\
3 etc
/\
2 4
/
1
我想沒有做到這一點,而無需使用更復雜的自平衡樹的方法。否則我可以自己做,但有人可能已經這樣做:)
感謝您的答案!這是最後的Python代碼:
def _buildTree(self, keys):
if not keys:
return None
middle = len(keys) // 2
return Node(
key=keys[middle],
left=self._buildTree(keys[:middle]),
right=self._buildTree(keys[middle + 1:])
)
中位數不太正確的術語。首先,中位數可能不存在於原始數據中。例如,3和4的中位數是3.5。見http://en.wikipedia.org/wiki/Median – 2010-05-24 21:44:55
你是對的。顯然(從你參考的維基百科頁面)這個詞是medoid。我做了一個編輯。 – 2010-05-24 22:02:05