Czytałem drzewo wyszukiwania binarnego i myślałem, że dlaczego potrzebujemy BST w ogóle? Wszystkie rzeczy, o ile wiem, mogą być również osiągnięte przy użyciu prostych uporządkowanych tablic. Dla np. - Aby zbudować BST z n elementami, potrzebujemy czasu n*O(log n)
, tj. O(nlog n)
, a czas wyszukiwania to O(log n)
. Ale można to osiągnąć za pomocą tablicy. Możemy mieć posortowaną tablicę (wymaga czasu O(nlog n)
), a czas wyszukiwania w tym jest również O(log n)
, tj. Wyszukiwanie binarne algo. Dlaczego w ogóle potrzebujemy innej struktury danych? Czy są jakieś inne zastosowania/zastosowania BST, które czynią je tak wyjątkowymi?Dlaczego drzewa wyszukiwania binarnego?
--Ravi
Jaka jest skuteczność wstawiania/usuwania z wersji macierzowej? Jeśli wymaga to przesunięcia wszystkich innych elementów tablicy, może to być kosztowne. –
ok ...znalezienie prawidłowej pozycji nowego/istniejącego elementu nadal byłoby O (log n), ale tak, przesunięcie będzie problemem ... ale właśnie ten .... jak na tekst, który przeczytałem, wydaje się, że oni (BST) są bardzo wyjątkowe? Chcę wiedzieć więcej o rzeczach, które czynią je wyjątkowymi. –
możliwy duplikat [drzewa binarnego i binarnego drzewa wyszukiwania] (http://stackoverflow.com/questions/5968937/binary-search-vs-binary-search-tree) – nawfal