Algorytm Hoare’a

Z Wikipedii, wolnej encyklopedii
(Przekierowano z Algorytm Hoare'a)

Algorytm Hoare’a – prosty algorytm rozwiązujący problem selekcji. Problem selekcji polega na wyznaczeniu -tej co do wielkości wśród liczb.

Algorytm[edytuj | edytuj kod]

Algorytm Hoare’a opiera się na pomyśle podobnym co algorytm QuickSort, mianowicie na podziale zbioru na liczby mniejsze i większe od wybranego elementu. Nieprzypadkowo zresztą, pomysłodawcą obu algorytmów jest ten sam człowiek, C.A.R. Hoare.

Działanie algorytmu jest następujące, powiedzmy, że dany jest zbiór zawierający liczb. Zadanie polega na wybraniu -tej co do wielkości. Wybieramy losową liczbę ze zbioru i dzielimy ten zbiór na elementy mniejsze lub równe od (zbiór ) oraz liczby większe od niej (zbiór ). Następnie, jeśli moc zbioru jest większa lub równa to rekurencyjnie szukamy w tym zbiorze -tego elementu, w przeciwnym przypadku rekurencyjnie szukamy w zbiorze elementu co do wielkości.

Złożoność czasowa[edytuj | edytuj kod]

Pesymistyczna złożoność czasowa to możemy bowiem (podobnie jak w QuickSorcie) wybierać cały czas do podziału największy element.

Równanie na oczekiwaną złożoność czasową w modelu permutacyjnym[1]:

Średnia złożoność jest liniowa.

Podany algorytm nie jest optymalny dla problemu selekcji, algorytm magicznych piątek działa pesymistycznie w czasie liniowym, więc jest znacząco lepszy.

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. L.Banachowski W.Rytter K.Diks, Algorytmy i struktury danych, ISBN 83-204-3224-3.

Bibliografia[edytuj | edytuj kod]

  • Selekcja (materiały dydaktyczne MIMUW na studia informatyczne I stopnia).