Izbira algoritma za sortiranje se zmanjša na nekaj lastnosti: časovna kompleksnost, stabilnost, poraba pomnilnika na mestu in naravo podatkov. Nobeden sam sort ne zmaga povsod.
Izbira algoritma za sortiranje se zmanjša na nekaj lastnosti: časovna kompleksnost, stabilnost, poraba pomnilnika na mestu in naravo podatkov. Nobeden sam sort ne zmaga povsod.
| Algoritem | Povpr. čas | Najslabši | Stabilen | Na mestu |
|---|---|---|---|---|
| Insertion | O(n²) | O(n²) | Da | Da |
| Merge | O(n log n) | O(n log n) | Da | Ne |
| Quick | O(n log n) | O(n²) | Ne | Da |
| Heap | O(n log n) | O(n log n) | Ne | Da |
# Most languages ship a tuned hybrid; prefer it in production
sorted(data, key=lambda x: x.priority) # stable Timsort in Python
Ne implementiraj sami sortiranja, razen če imaš konkreten razlog — bibliotečni sortiranja (Timsort, introsort) so preizkušeni hibridi.
Prilagajanje sorta podatkom in zahtevam se izogne tako zapravljanju časa kot prikritim hroščem (kot je izguba stabilnosti).
Razumevanje kompromisov pojasni, zakaj so standardne knjižnice izbrale hibride kot Timsort in introsort.
Ta primerjalna presoja — ne pomnjenje enega algoritma — je tisto, kar prava inženirska dela in intervjuji nagrajujejo.