lecture: analysis of algorithms (cs583 -...

43
Outline of Today’s Class Lower Bound on Comparison-based Sorting Lecture: Analysis of Algorithms (CS583 - 004) Amarda Shehu Spring 2019 Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Upload: others

Post on 24-May-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Lecture: Analysis of Algorithms (CS583 - 004)

Amarda Shehu

Spring 2019

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 2: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

1 Outline of Today’s Class

2 Lower Bound on Comparison-based SortingDecision Trees

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 3: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Decision Trees

How Fast Can We Sort?

The sorting algorithms we have seen so far are insertion sort,mergesort, heapsort, and quicksort

All these sorting algorithms are comparison sorts

They rely on comparisons to determine the relative order ofelements

The best worst-case running time that we have seen forcomparison sorting is O(n · lgn)

Is O(n · lgn) the best we can do?

We need to employ decision trees to answer this question

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 4: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Decision Trees

Reason for Employing a Decision Tree

Sort 〈a1, a2, . . . , an〉:

Each internal node is labeled i : j for i , j ∈ 1, 2, . . . , n

The left subtree shows subsequent comparisons if ai ≤ aj

The right subtree shows subsequent comparisons if ai > aj

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 5: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Decision Trees

Example of a Decision Tree

Sort 〈a1, a2, . . . , an〉 =< 9, 4, 6 >:

Each internal node is labeled i : j for i , j ∈ 1, 2, . . . , n

The left subtree shows subsequent comparisons if ai ≤ aj

The right subtree shows subsequent comparisons if ai > aj

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 6: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Decision Trees

Example of a Decision Tree

Sort 〈a1, a2, . . . , an〉 =< 9, 4, 6 >:

Each internal node is labeled i : j for i , j ∈ 1, 2, . . . , n

The left subtree shows subsequent comparisons if ai ≤ aj

The right subtree shows subsequent comparisons if ai > aj

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 7: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Decision Trees

Example of a Decision Tree

Sort 〈a1, a2, . . . , an〉 =< 9, 4, 6 >:

Each internal node is labeled i : j for i , j ∈ 1, 2, . . . , n

The left subtree shows subsequent comparisons if ai ≤ aj

The right subtree shows subsequent comparisons if ai > aj

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 8: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Decision Trees

Example of a Decision Tree

Sort 〈a1, a2, . . . , an〉 =< 9, 4, 6 >:

Each leaf contains a permutation 〈π(1), π(2), . . . π(n)〉 whichestablishes the ordering aπ(1), aπ(2), . . . , aπ(n)

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 9: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Decision Trees

Decision Tree Model

A decision tree can model the execution of any comparison sort:

One tree for each input size n

View the algorithm as splitting the tree whenever it comparestwo elements

The tree contains the comparisons along all possibleinstruction traces

The running time of the algorithm is then the length of theactual path taken

Worst-case running time is the height of tree

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 10: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassLower Bound on Comparison-based Sorting

Decision Trees

Lower Bound for Decision Tree Sorting

Theorem: Any decision tree that can sort n elements must haveheight Ω(n · lgn)Proof:

The tree must contain ≥ n! leaves, since there are n! possiblepermutations.

A height h binary tree has ≤ 2h leaves

Hence, n! ≤ 2h

h ≥ lg(n!)≥ lg((n/e)n) – Stirling’s approximation= n · lgn − n · lge∈ Ω(n · lgn)

Corollary: Heapsort and mergesort are asymptotically optimalcomparison-based sorting algorithms

Amarda Shehu Lecture: Analysis of Algorithms (CS583 - 004)

Page 11: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Lecture 3: Analysis of Algorithms (CS583 - 004)

Amarda Shehu

Spring 2019

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 12: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

1 Outline of Today’s Class

2 Sorting in Linear TimeCounting SortRadix Sort

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 13: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Sorting in Linear Time

We can sort faster than O(n · lgn) if we do not compare theitems being sorted against each other

We can do this if we have additional information about thestructure of the items

Examples of Sorting Algorithms that do not compare items1 Counting Sort2 Radix Sort3 Bucket Sort

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 14: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Basic Idea and Pseudocode

Input: A[1 . . . n], whereA[j ] ∈ 1, 2, . . . kOutput: B[1 . . . n] sorted

Auxiliary storage: C [1 . . . k]

Note: all elements are in1, 2, . . . kBasic Idea: Count the numberof 1’s, 2’s, . . ., k’s.

COUNTINGSORT(A, n)

1: for i ← 1 to k do2: Ci ← 03: for j ← 1 to n do4: C [A[j ]]← C [A[j ]] + 1

BC [i ] = |key = i|5: for i ← 2 to k do6: C [i ]← C [i ] + C [i − 1]

BC [i ] = |key ≤ i|7: for j ← n to 1 do8: B[C [A[j ]]]← A[j ]9: C [A[j ]]← C [A[j ]− 1]

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 15: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 16: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 17: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 18: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 19: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 20: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 21: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 22: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 23: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 24: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 25: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 26: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 27: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 28: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 29: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Trace

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 30: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Running Time Analysis

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 31: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Running Time Analysis

If k ∈ O(n), then counting sort takes O(n) time.

But sorting takes Ω(n · lgn) time!

Where is the contradiction?

Comparison sorting takes Ω(n · lgn)

Counting sot is not a comparison sort

Not a single comparison occurs in counting sort

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 32: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Running Time Analysis

If k ∈ O(n), then counting sort takes O(n) time.

But sorting takes Ω(n · lgn) time!

Where is the contradiction?

Comparison sorting takes Ω(n · lgn)

Counting sot is not a comparison sort

Not a single comparison occurs in counting sort

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 33: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort: Running Time Analysis

If k ∈ O(n), then counting sort takes O(n) time.

But sorting takes Ω(n · lgn) time!

Where is the contradiction?

Comparison sorting takes Ω(n · lgn)

Counting sot is not a comparison sort

Not a single comparison occurs in counting sort

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 34: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Counting Sort is Stable

Counting sort is a stable sort because it preserves the input orderamong equal elements.

What other sorting algorithms have this property?

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 35: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Radix Sort

History: Herman Hollerith’s card-sorting machine for the 1890US Census.

Radix sort is digit-by-digit sort

Hollerith’s original (wrong) idea was to sort on mostsignificant digit first

The final (correct) idea was to sort on the least significantdigit first with an auxiliary stable sort

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 36: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Radix Sort in Action

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 37: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Radix Sort: Correctness

The proof is by induction onthe digit position

Assume that the numbers arealready sorted by theirlow-order t − 1 digits

Sort on digit t

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 38: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Radix Sort: Correctness

The proof is by induction onthe digit position

Assume that the numbers arealready sorted by theirlow-order t − 1 digits

Sort on digit t

Two numbers that differ indigit t are correctly sorted

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 39: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Radix Sort: Correctness

The proof is by induction onthe digit position

Assume that the numbers arealready sorted by theirlow-order t − 1 digits

Sort on digit t

Two numbers that differ indigit t are correctly sortedTwo numbers equal in digit tare put in the same order asthe input - the correct order

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 40: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Radix Sort: Running Time Analysis

Assume counting sort is the auxiliary stable sort

Sort n computer words of b bits each

Each word can be viewed as having b/r base-2r

Figure: Example of a 32-bit word

r = 8 means b/r = 4 passes of counting sort on base-28 digits

r = 16 means b/r = 2 passes on base-216 digits

How many passes should one make?

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 41: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Radix Sort: Running Time Analysis

Note: Counting sort takes θ(n + k) time to sort n numbers in therange 0 to k − 1.If each b-bit word is broken into r -bit pieces, each pass of countingsort takes θ(n + 2r ) time. Since there are b/r passes, we have:

T (n, b) ∈ θ(b

r(n + 2r ))

Choose r to minimize T (n, b)

Increasing r means fewer passes, but as r >> lgn, the timegrows exponentially

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 42: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Radix Sort Runs in Linear Time: Choosing r

T (n, b) ∈ θ(b

r(n + 2r ))

Minimize T (n, b) by differentiating and setting the first derivativeto 0. Recall that this is the technique to find minima or maximafor a function.Alternatively, observe that we do not want 2r >> n, and so we cansafely choose r to be as large as possible without violating thisconstraint.Choosing r = lgn implies that T (n, b) ∈ θ(bn/lgn)

For numbers in the range 0 to nd − 1, we have that b = d · lgnHence, radix sort runs in θ(d · n) time

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)

Page 43: Lecture: Analysis of Algorithms (CS583 - 004)ashehu/sites/default/files/cs583_Spring19/Shehu_CS583_CompvsLinear...Outline of Today’s Class Lower Bound on Comparison-based Sorting

Outline of Today’s ClassSorting in Linear Time

Counting SortRadix Sort

Final Words on Radix Sort and Sorting Algorithms

In practice, radix sort is fast for large inputs, as well as simple toimplement and maintain

Example: 32-bit numbers

At most 3 passes when sorting ≥ 2000 numbers

Mergesort and quicksort do at least dlg2000e passes

Not all Rosy:

Unlike quicksort, radix sort displays little locality of reference

A well-tuned quicksort does better on modern processors thatfeature steep memory hierarchies

Amarda Shehu Lecture 3: Analysis of Algorithms (CS583 - 004)