2020-03-16
Wszystkie dotychczas omówione algorytmy sortowania (InsertionSort
, MergeSort
, QuickSort
) zakładały, że aby ustalić kolejność elementów możemy je tylko porównywać między sobą - jest to tzw. Comparison Model. Przy użyciu binarnego drzewa decyzyjnego możemy udowodnić, że liczba porównań między sortowanymi elementami musi wynosić co najmniej .
Weźmy drzewo sortujące biorące za argument tablicę -elementową. Każdy z liści takiego drzewa jest permutacją . Mamy więc przynajmniej liści. Warto zauważyć, że w drzewie binarnym o głębokości jest co najwyżej liści.
Wówczas głębokość naszego drzewa i złożoność algorytmu sortującego zarazem wynosi .
Za to dla pewnych jest znanym faktem. Chociażby , ponieważ zawiera przynajmniej współczynników większych od - wówczas wystarczy nałożyć na obie strony nierówności.
W takim razie już wiemy, że w najgorszym przypadku mamy porównań.
Source: Algorithms: Dasgupta, Papadimitriou, Vazirani - end of paragraph 2.3