Counting Sort
Time: O(n+k).
Space: O(k), or O(n+k) for stable output variants.
Works naturally for bounded integer keys.
Not suitable when the numeric range is extremely large.
Can be stable when implemented with cumulative counts and an output array.