Sorting
Also known as: Sort, Ordering
Sorting rearranges a sequence into nondecreasing (or nonincreasing) order under a total order on the keys. Most textbook sorts are comparison sorts; counting sort and radix sort use key structure instead.
Coder view: pick by $n$, key type, and whether you need stability. Libraries usually ship a hybrid (timsort, introsort): merge-like for nearly sorted runs, quick-like for random arrays, heap fallback for worst cases.
Asymptotics you will see on exams: comparison sorts need $\Omega(n \log n)$ comparisons in the worst case in the decision-tree model. Practical $O(n \log n)$ sorts are merge sort, heapsort, and average-case quicksort. Quadratic $O(n^2)$ sorts (insertion, selection, bubble) still matter for tiny $n$ and for teaching invariants.