Zwykły prosty algorytm znajdowania elementu mediany w tablicy liczby to:n
- Próbkuj elementów z z zamianą na B
- Sortuj i znaleźć rangi elementy i z| B | ± √ lrB.
- Sprawdź, czy i znajdują się po przeciwnych stronach mediany i czy istnieje co najwyżej elementów w między i dla pewnej odpowiedniej stałej . Niepowodzenie, jeśli tak się nie stanie.r A C √ AlrC>0
- W przeciwnym razie, znaleźć mediany sortowania elementów między il r
Nietrudno zauważyć, że przebiega to w czasie liniowym i że z dużym prawdopodobieństwem się udaje. (Wszystkie złe zdarzenia są dużymi odchyleniami od oczekiwań na dwumian.)
Alternatywnym algorytmem dla tego samego problemu, który jest bardziej naturalny dla uczniów, którzy widzieli szybkie sortowanie, jest opisany tutaj: Wybór losowy
Łatwo też zauważyć, że ten ma liniowy oczekiwany czas działania: powiedzmy, że „runda” jest sekwencją wywołań rekurencyjnych, które kończą się, gdy daje się podział 1 / 4-3 / 4, a następnie obserwujemy, że oczekiwana długość runda wynosi co najwyżej 2. (W pierwszym losowaniu rundy prawdopodobieństwo uzyskania dobrego podziału wynosi 1/2, a następnie po rzeczywistym wzroście, tak jak opisano algorytm, więc długość rundy jest zdominowana przez losową zmienną geometryczną).
Więc teraz pytanie:
Czy można wykazać, że losowa selekcja przebiega w czasie liniowym z dużym prawdopodobieństwem?
Mamy rundy , a każda runda ma długość co najmniej z prawdopodobieństwem co najwyżej , więc granica związku oznacza, że czas działania wynosi z prawdopodobieństwemk 2 - k + 1 O ( n log log n ) 1 - 1 / O ( log n ) .
To trochę niezadowalające, ale czy to w rzeczywistości prawda?
Odpowiedzi:
To nieprawda, że algorytm działa z dużym prawdopodobieństwem w czasie liniowym. Biorąc pod uwagę tylko pierwszą rundę, czas działania wynosi co najmniej razy zmienna losowa . Niech będzie dopuszczalnym prawdopodobieństwem awarii. Ponieważ , czas działania wynosi co najmniej .Θ(n) G(1/2) p(n)⟶0 Pr[G(1/2)≥log2p(n)−1]=p(n) Ω(nlog2p(n)−1)=ω(n)
(W grę wchodzi oszustwo, ponieważ długość pierwszej rundy nie jest tak naprawdę . Bardziej szczegółowa analiza może lub nie może potwierdzić tę odpowiedź.)G(1/2)
Edycja: Grübel i Rosler udowodnili, że oczekiwana liczba porównań podzielona przez zmierza (w pewnym sensie) do pewnego rozkładu granic, który jest nieograniczony. Zobacz na przykład artykuł Grübla „Algorytm wyboru Hoare'a: podejście łańcuchowe Markowa”, który odwołuje się do ich oryginalnej pracy.n
źródło