Złożoność czasowa i pamięciowa
Lekcja 7 z 9 w kursie Sortowanie przez zliczanie – seria DSA w Coddy.
Złożoność czasowa:
- O(n + k)
- gdzie n to liczba elementów, a k to zakres wartości (maks. + 1). Jedno przejście służy do zliczania, a jedno przejście po zliczeniach do odtworzenia tablicy.
- Gdy k jest małe i stałe, złożoność wynosi w praktyce O(n), co jest szybsze niż O(n log n) w przypadku sortowania przez porównywanie.
Złożoność pamięciowa:
- O(n + k)
- Tablica zliczeń zajmuje O(k), a wynik O(n).
Podsumowanie:
- Sortowanie przez zliczanie to stabilny algorytm sortowania, który nie korzysta z porównań i działa w czasie liniowym dla małych zakresów liczb całkowitych.
- Nie sprawdza się, gdy zakres wartości k jest bardzo duży, ponieważ tablica zliczeń byłaby ogromna. Ta wersja zakłada nieujemne liczby całkowite.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Sortowanie przez zliczanie – seria DSA
2Algorytm
Jak to działa?PseudokodImplementacja (część 1)Implementacja (część 2)Poćwicz samodzielnie: Kompilator C online