Alegerea unei sortări se reduce la câteva proprietăți: complexitate de timp, stabilitate, utilizarea memoriei in-place și natura datelor. Nici o sortare nu câștigă peste tot.
Alegerea unei sortări se reduce la câteva proprietăți: complexitate de timp, stabilitate, utilizarea memoriei in-place și natura datelor. Nici o sortare nu câștigă peste tot.
| Algoritm | Timp mediu | Caz worst | Stabilă | In-place |
|---|---|---|---|---|
| Insertion | O(n²) | O(n²) | Da | Da |
| Merge | O(n log n) | O(n log n) | Da | Nu |
| Quick | O(n log n) | O(n²) | Nu | Da |
| Heap | O(n log n) | O(n log n) | Nu | Da |
# Most languages ship a tuned hybrid; prefer it in production
sorted(data, key=lambda x: x.priority) # stable Timsort in Python
Nu implementa propria sortare decât dacă ai un motiv specific — sortările din bibliotecă (Timsort, introsort) sunt hibride testate în luptă.
Alinierea sortării cu datele și cerințele evită atât timp risipă, cât și erori subtile (cum ar fi pierderea stabilității).
Înțelegerea compromisurilor explică de ce bibliotecile standard au ales hibride ca Timsort și introsort.
Acest judecată comparativă — nu memorarea unui algoritm — este ceea ce ingineria reală și interviurile recompensează.