Quick Sort picks a pivot, partitions the array so all smaller elements go left and larger go right, then recursively sorts both sides.
Time: O(n log n) average, O(n²) worst (rare with good pivot). Space: O(log n) for recursion stack. In practice, it's often the fastest sorting algorithm.
Pivot strategies: last element, first element, random, or median-of-three.
quick_sort([10, 7, 8, 9, 1, 5])
[1, 5, 7, 8, 9, 10]