shellsort worst-case analysis of shellsort heapsort analysis of heapsort mergesort analysis of mergesort quicksort picking the pivot partitioning strategy small arrays actual quicksort routines analysis of quicksort linear-expected-time algorithm for selection general lower bound for sorting decision trees decision-tree lower bounds for selection problems adversary lower bounds linear-time sortsbucket sort and radix sort external sorting why we need new algorithms model for external sorting the simple algorithm multiway merge polyphase merge replacement selection summary exercises references the disjoint sets class equivalence relations the dynamic equivalence problem basic data structure smart union algorithms path compression worst case for union-by-rank and path compression slowly growing functions an analysis by recursive decomposition an om log bound an om (mnbound an application xi