Więc wszyscy znamy dolną granicę drzewa na podstawie najgorszego przypadku porównań wykonanych przez (deterministyczny) algorytm sortowania porównań. Nie dotyczy losowego sortowania porównań (jeśli mierzymy oczekiwane porównania dla danych wejściowych w najgorszym przypadku). Na przykład, dla , dolna granica deterministyczna wynosi pięć porównań, ale algorytm randomizowany (losowo permutuje dane wejściowe, a następnie zastosuj sortowanie scalające) działa lepiej, mając porównania dla wszystkich danych .
związany bez pułapów nadal obowiązuje w przypadku losowym za pomocą argumentu teoretyczno-informacyjnego i można go nieco dokręcić do Wynika to z tego, że istnieje optymalny algorytm, który losowo permutuje dane wejściowe, a następnie stosuje (deterministyczne) drzewo decyzyjne, a najlepszym drzewem decyzyjnym (jeśli istnieje) jest drzewo, w którym wszystkie liście znajdują się na dwóch kolejnych poziomach.
Co jeśli wiadomo coś o górnych granicach tego problemu? Dla wszystkich losowa liczba porównań (w oczekiwaniu, dla danych wejściowych w najgorszym przypadku, dla najlepszego możliwego algorytmu) jest zawsze zdecydowanie lepsza niż najlepszy algorytm deterministyczny (zasadniczo, ponieważ Nigdy nie jest potęgą dwóch) . Ale o ile lepiej?
źródło
Odpowiedzi:
Ponieważ twoje pytanie brzmi: „Co wiadomo?” Oto coś:
http://arxiv.org/abs/1307.3033
Daje to średnią analizę przypadku algorytmu Forda-Johnsona. Oczekiwana liczba porównań to dla zaskakująco małej stałej (około 0,05).logn!+cn c
źródło