Výběr algoritmu řazení závisí na několika vlastnostech: časové složitosti, stabilitě, využití paměti na místě a povaze dat. Žádný jednotný algoritmus nevyhraje všude.
Výběr algoritmu řazení závisí na několika vlastnostech: časové složitosti, stabilitě, využití paměti na místě a povaze dat. Žádný jednotný algoritmus nevyhraje všude.
| Algoritmus | Průměr | Nejhorší | Stabilní | Na místě |
|---|---|---|---|---|
| Insertion | O(n²) | O(n²) | Ano | Ano |
| Merge | O(n log n) | O(n log n) | Ano | Ne |
| Quick | O(n log n) | O(n²) | Ne | Ano |
| Heap | O(n log n) | O(n log n) | Ne | Ano |
# Most languages ship a tuned hybrid; prefer it in production
sorted(data, key=lambda x: x.priority) # stable Timsort in Python
Neimplementujte si vlastní algoritmus řazení, pokud nemáte specifický důvod — knihovnické algoritmy (Timsort, introsort) jsou prověřené hybridy.
Přizpůsobení algoritmu datům a požadavkům vyhýbá plýtvání časem a jemným chybám (jako ztráta stability).
Pochopení kompromisů vysvětluje, proč si standardní knihovny vybraly hybridy jako Timsort a introsort.
Toto srovnávací úsudek — ne memorování jednoho algoritmu — je to, co opravdové inženýrství a rozhovory oceňují.