Algorytmy sortowania

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Czym są algorytmy sortowania?

Algorytmy sortowania służą do uporządkowania danych według określonego kryterium, np. rosnąco, malejąco albo alfabetycznie. W programowaniu są podstawowym tematem, ponieważ wpływają na wydajność aplikacji przetwarzających duże zbiory danych.

Popularne algorytmy sortowania

Do często omawianych algorytmów należą:

  • sortowanie bąbelkowe - proste, ale zwykle wolne; typowa złożoność O(n²),
  • sortowanie przez wstawianie - dobre dla małych lub prawie posortowanych danych; typowo O(n²),
  • sortowanie przez scalanie - stabilne i wydajne; złożoność O(n log n),
  • sortowanie szybkie - często bardzo szybkie w praktyce; średnio O(n log n),
  • sortowanie przez zliczanie - może działać w czasie liniowym O(n + k), jeśli zakres wartości jest ograniczony.

Jak wybrać algorytm?

Przy wyborze algorytmu należy uwzględnić:

  • liczbę elementów,
  • typ danych,
  • zakres wartości,
  • wymaganą stabilność sortowania,
  • zużycie pamięci,
  • złożoność czasową.

Znaczenie na egzaminie

W pytaniach egzaminacyjnych często trzeba porównać algorytmy po podanej złożoności. Dla dużych danych algorytm O(n²) jest zwykle gorszy od O(n log n), a O(n) jest korzystniejsze niż oba te warianty.

Jeżeli tabela podaje, że sortowanie przez zliczanie ma O(n), to według tej tabeli będzie najefektywniejsze spośród metod o złożoności O(n log n) i O(n²).