Use library sorting by default. Heavily optimized.
C++: std::sort (introsort), std::stable_sort (merge sort).
Python: sorted(), list.sort() (Timsort). Stable.
Java: Arrays.sort() dual-pivot quicksort for primitives, Timsort for objects.
Benefits: Optimized for real data, correct edge cases, cache-friendly.
Custom sort: When needing specific properties or sorting as part of algorithm (e.g., counting inversions).