Izbor sortiranja dolazi do nekoliko svojstava: vremenska složenost, stabilnost, upotreba memorije na mjestu, i priroda podataka. Niti jedan algoritam ne pobjeđuje svugdje.
Izbor sortiranja dolazi do nekoliko svojstava: vremenska složenost, stabilnost, upotreba memorije na mjestu, i priroda podataka. Niti jedan algoritam ne pobjeđuje svugdje.
| Algoritam | Prosj. vrijeme | Najgore | Stabilan | Na mjestu |
|---|---|---|---|---|
| Umetanje | O(n²) | O(n²) | Da | Da |
| Spajanje | O(n log n) | O(n log n) | Da | Ne |
| Brzo | O(n log n) | O(n²) | Ne | Da |
| Hrpa | 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 implementirajte sortiranje ručno osim ako nemate specifičan razlog — bibliotečna sortiranja (Timsort, introsort) su ispitana hibridna rješenja.
Prilagođavanje sortiranja podacima i zahtjevima izbjegava gubitak vremena i suptilne greške (kao što je gubitak stabilnosti).
Razumijevanje kompromisa objašnjava zašto su standardne biblioteke odabrali hibride poput Timsort-a i introsort-a.
Ovo komparativno rasuđivanje — ne pamćenje jednog algoritma — je ono što prava inženjerija i razgovori za posao nagrađuju.