liniowość radix sort
-
- 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
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)}\)
- argv
- 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
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
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