liniowość radix sort

Dumel
Użytkownik
Użytkownik
Posty: 2000
Rejestracja: 19 lut 2008, o 17:35
Płeć: Mężczyzna
Lokalizacja: Stare Pole/Kraków
Podziękował: 60 razy
Pomógł: 202 razy

liniowość radix sort

Post autor: Dumel »

dlaczego wszedzie sie pisze ze radix_sort działa w czasie liniowym? przecież dla n k-cyfrowych liczb to jest jak jakby k razy counting_sort(\(\displaystyle{ \Omega(n)}\)), a poniewaz \(\displaystyle{ k=\Omega(logn)}\) wiec na moje oko zlozonosc tego algorytmu wynosi \(\displaystyle{ \Omega(nlogn)}\)
Awatar użytkownika
argv
Użytkownik
Użytkownik
Posty: 569
Rejestracja: 27 maja 2009, o 01:27
Płeć: Mężczyzna
Podziękował: 51 razy
Pomógł: 66 razy

liniowość radix sort

Post autor: argv »

Idąc za Cormenem:
Radixsort jest liniowe jeśli:
- liczba cyfr czyli d jest stała
- liczba mozliwych wartosci przyjmowanych przez cyfre k = O(n)

Więc jeśli liczba cyfr jest stała to robimy d przebiegów po O(n+k) każdy. k = O(n), więc każdy przebieg kosztuje nas O(n), więc d przebiegów to d*O(n) czyli wciąż O(n).

Przynajmniej ja tak to sobie tłumacze
ODPOWIEDZ