Każdy ranking różnych struktur danych będzie przynajmniej częściowo powiązany z kontekstem problemu. Pomogłoby to w nauce analizowania wydajności algorytmów w czasie i przestrzeni. Zwykle stosuje się „notację dużego O”, np. Wyszukiwanie binarne odbywa się w czasie O (log n), co oznacza, że czas wyszukiwania elementu jest logiem (domyślnie o podstawie 2) liczby elementów. Intuicyjnie, ponieważ każdy krok odrzuca połowę pozostałych danych jako nieistotne, podwojenie liczby elementów zwiększy czas o 1 krok. (Wyszukiwanie binarne skaluje się raczej dobrze). Wydajność przestrzeni dotyczy tego, jak rośnie ilość pamięci dla większych zestawów danych. Należy również zauważyć, że notacja duże-O ignoruje stałe czynniki - w przypadku mniejszych zestawów danych algorytm O (n ^ 2) może nadal być szybszy niż algorytm O (n * log n), który ma wyższy współczynnik stały.
Oprócz czasu i przestrzeni inne cechy obejmują to, czy struktura danych jest posortowana (drzewa i listy przeskoków są sortowane, a tabele skrótów nie), trwałość (drzewa binarne mogą ponownie wykorzystywać wskaźniki ze starszych wersji, podczas gdy tabele skrótów są modyfikowane w miejscu) itp.
Chociaż będziesz musiał nauczyć się zachowania kilku struktur danych, aby móc je porównać, jednym ze sposobów zrozumienia, dlaczego różnią się one wydajnością, jest dokładne przestudiowanie kilku. Sugerowałbym porównanie list połączonych pojedynczo, drzew wyszukiwania binarnego i list pomijanych , z których wszystkie są stosunkowo proste, ale mają bardzo różne cechy. Zastanów się, ile pracy potrzeba, aby znaleźć wartość, dodać nową wartość, znaleźć wszystkie wartości w kolejności itp.
Istnieje wiele tekstów na temat analizy wydajności algorytmów / struktury danych, które ludzie zalecają, ale to, co naprawdę miało dla mnie sens, to nauka OCaml. Radzenie sobie ze złożonymi strukturami danych jest mocną stroną ML, a ich zachowanie jest znacznie jaśniejsze, gdy można uniknąć wskaźników i zarządzania pamięcią, jak w C. (Nauka OCaml tylko po to, aby zrozumieć struktury danych, jest jednak prawie na pewno długą drogą. :))