Problém třídění
-
Název: Problém třídění
-
Vstup: Posloupnost čísel
-
Výstup: Permutace vstupní posloupnosti taková, že
-
Proč je problém třídění důležitý:
- Vyskytuje se jako úloha při řešení mnoha úloh zpracování dat.
- Algoritmy pro řešení složitějších problémů využívají algoritmy pro třídění.
- Často potřebujeme setřídit pole složitějších datových položek než jsou čísla.
- Algoritmy třídění používají řadu užitečných technik pro návrh algoritmů.
Rozdělení třídících algoritmů
- Třídící algoritmy lze rozdělit podle několika kritérií, například:
- Podle způsobu třídění:
- Třídění vkládáním:
- Insertion sort
- Třídění výběrem:
- Selection sort
- Rozdělej a panuj:
- Quick sort, Merge sort
- Využití haldy (datová struktura):
- Heap sort
- Nahoře zmíněné algoritmy využívají tzv. třídění porovnáváním (porovnají prvky ve struktuře, aby je mohli korektně seřadit)
- Některé třídící algoritmy (Counting Sort nebo Radix Sort) nepoužívají porovnání prvků, ale pracují s počtem výskytů nebo s číslicemi v číslech.
- Třídění vkládáním:
- Podle časové složitosti:
- Algoritmy s časovou složitostí
- Bubble Sort, Selection Sort, Insertion Sort.
- Algoritmy s časovou složitostí
- QuickSort, MergeSort, HeapSort.
- Lineární algoritmy s časovou složitostí
- Counting Sort, Radix Sort.
- Algoritmy s časovou složitostí
- Podle stability:
- Stabilní algoritmy
- Zachovávají pořadí stejných prvků v seznamu
- MergeSort, Insertion Sort.
- Nestabilní algoritmy
- Mohou zaměnit pořadí stejných prvků
- QuickSort, Selection Sort
- Stabilní algoritmy
- Podle paměťové náročnosti:
- In-place algoritmy
- Provádějí třídění přímo v původním seznamu a nepotřebují žádnou další paměťovou alokaci.
- QuickSort, Selection Sort.
- Out-of-place algoritmy
- Vytvářejí nový seznam pro seřazené prvky a mohou potřebovat více paměti.
- MergeSort, Counting Sort.
- In-place algoritmy
Dolní mez složitosti třídění porovnáváním
Věta
Časová složitost v nejhorším případě libovolného algoritmu třídění porovnáváním je .
- Čili nejsme schopni najít algoritmus, který by byl v časové složitosti lepši než již existující
Důkaz věty