4.1 Randomized algorithm 4.2 Quicksort and randomized quicksort 4.3 Expected running time of quicksort 4.4 Max-heaps and min-heaps 4.5 Heap operations: heapify, building, and key increasing 4.6 heap sort and priority queues 4.7 Comparisons of sort algorithms: heap sort, quick sort, insertion sort, and merge sort 4.8 Comparison sort and decision tree model 4.9 Sorting in linear time: counting-sort, radix sort, and bucket sort