Implement quicksort.

Implement quicksort.

Approach: Choose pivot, partition, recurse on subarrays.

function quicksort(arr, low, high): if low < high: p = partition(arr, low, high); quicksort(arr, low, p-1); quicksort(arr, p+1, high). partition chooses pivot, places it correctly, returns index.

Follow-up: What is worst-case time complexity?

Key concepts: divide and conquer, partition, recursion.