RKRNAOSZ4SAMD
Zdjęcie przedstawia owoce sezonowe w małych pojemnikach, porzeczki, jagody, borówki, maliny i poziomki.

I_P_W14_M09_C++ Metody sortowania

Źródło: Alex Block, domena publiczna.

Sposób sortowania elementów

Wyrazy sortowanego zbioru mogą być sortowane rosnąco, niemalejąco, malejąco lub nierosnąco. Domyślnym przypadkiem jest sortowanie niemalejące lub rosnące.

Chociaż terminy kolejność niemalejącarosnąca oraz nierosnącamalejąca bywają używane zamiennie, ich znaczenia nie są tożsame.

O sortowaniu rosnącym mówimy wtedy, gdy każdy kolejny posortowany element jest większy od poprzedniego – nie ma równych elementów.

Linia 1. 0 2 5 7 13 16 34 37 51 61.

O sortowaniu niemalejącym mówimy wtedy, gdy każdy kolejny posortowany element jest większy lub równy poprzedniemu (w zbiorze są równe sobie elementy).

Linia 1. 0 2 5 7 7 16 34 51 51 61.

O sortowaniu malejącym mówimy wtedy, gdy każdy kolejny posortowany element jest mniejszy od poprzedniego – nie ma równych elementów.

Linia 1. 61 51 37 34 16 13 7 5 2 0.

O sortowaniu nierosnącym mówimy wtedy, gdy każdy kolejny posortowany element jest mniejszy lub równy poprzedniemu (w zbiorze są równe sobie elementy).

Linia 1. 61 51 51 34 16 7 7 5 2 0.

Algorytmy sortowania – właściwości

Mówiąc o algorytmach sortowania, powinniśmy pamiętać o tym, jak można je scharakteryzować oraz ze względu na co podzielić.

Możemy wyróżnić działania, na których bazuje większość algorytmów sortowania, które poznamy – są to np.: wstawianie, zamiana, wybór oraz łączenie. Algorytmy najczęściej wykorzystują kilka z nich.

Sortowanie w miejscu

Algorytmy sortowania, które sortują w miejscu (in situ) to takie algorytmy, które niezależnie od tego, jaki jest rozmiar danych wejściowych, do wykonania sortowania potrzebują stałej ilości pamięci komputera.

Przykład 1

Przykłady algorytmów sortowania, które sortują dane w miejscu: sortowanie przez wybieranie, sortowanie przez wstawianie, sortowanie bąbelkowe, sortowanie szybkie.

Przykład 2

Przykłady algorytmów sortowania, które nie sortują danych w miejscu: sortowanie kubełkowe, sortowanie pozycyjne (np. sortowanie pozycyjne dat, sortowanie pozycyjne liczb, sortowanie pozycyjne słów), sortowanie przez zliczanie, sortowanie przez scalanie.

Stabilność

Algorytmy sortowania stabilnego to takie algorytmy, w których elementy o takiej samej wartości podczas sortowania nie zmieniają kolejności względem siebie.

Przykład 3

Przykłady algorytmów sortowania, które są stabilne: sortowanie przez wstawianie, sortowanie bąbelkowe, sortowanie pozycyjne (np. sortowanie pozycyjne dat, sortowanie pozycyjne liczb, sortowanie pozycyjne słów), sortowanie przez zliczanie, sortowanie przez scalanie.

Przykład 4

Przykłady algorytmów sortowania, które nie są stabilne: sortowanie przez wybieranie, sortowanie kubełkowe, sortowanie szybkie.

Złożoność obliczeniowa i pamięciowa

Informacje na temat złożoności obliczeniowej oraz pamięciowej znajdziesz w e‑podręczniku na poziomie rozszerzonym w modułach: „Jak wybrać odpowiedni algorytm sortowania” oraz „Porównanie algorytmów sortowania”.

Słownik

sortowanie
sortowanie

proces polegający na porządkowaniu zbioru elementów według ich wybranych cech

sortowanie w miejscu
sortowanie w miejscu

inaczej in situ - sortowanie, w którym niezależnie od rozmiaru danych wejściowych potrzebna jest stała ilość pamięci komputera

sortowanie stabilne
sortowanie stabilne

sortowanie, w którym elementy o takiej samej wartości nie zmienią pozycji względem siebie

złożoność obliczeniowa
złożoność obliczeniowa

ilość zasobów komputerowych potrzebnych do wykonania zadania

złożoność czasowa
złożoność czasowa

ilość czasu potrzebnego do wykonania zadania, wyrażona jako funkcja ilości danych