Có phương pháp xây dựng cây tìm kiếm nhị phân cân bằng không?Xây dựng cây tìm kiếm nhị phân cân bằng
Ví dụ:
1 2 3 4 5 6 7 8 9
5
/\
3 etc
/\
2 4
/
1
Tôi đang nghĩ đến có một phương pháp để làm điều này, mà không sử dụng các loại cây tự cân bằng phức tạp hơn. Nếu không, tôi có thể tự làm điều đó, nhưng có thể ai đó đã làm điều này rồi :)
Cảm ơn câu trả lời! Đây là mã python thức:
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:])
)
Không phải là thuật ngữ đúng. Đối với một điều, trung bình có thể không tồn tại trong dữ liệu gốc. Ví dụ, trung vị của 3 và 4 là 3,5. Xem http://en.wikipedia.org/wiki/Median –
Bạn nói đúng. Rõ ràng (từ trang wikipedia bạn tham khảo) từ là medoid. Tôi đã chỉnh sửa. –