CS 3343 – Fall 2011
Sorting
Carola Wenk Slides courtesy of Charles Leiserson with small
9/29/11 CS 3343 Analysis of Algorithms 1
Sorting Carola Wenk Slides courtesy of Charles Leiserson with small - - PowerPoint PPT Presentation
CS 3343 Fall 2011 Sorting Carola Wenk Slides courtesy of Charles Leiserson with small y changes by Carola Wenk 9/29/11 1 CS 3343 Analysis of Algorithms How fast can we sort? How fast can we sort? All the sorting algorithms we have
9/29/11 CS 3343 Analysis of Algorithms 1
9/29/11 CS 3343 Analysis of Algorithms 2
9/29/11 CS 3343 Analysis of Algorithms 3
a1 a2 a3 insert a2
1 2 3
a a a a2 a1 a3 i j insert a3 insert a3
2
a1 a2 a3 i j i j a2 a1 a3 i j a1 a2 a3 i j
1 2 3
2 1 3
i j
1 3 2 3 1 2 2 3 1 3 2 1
9/29/11 CS 3343 Analysis of Algorithms 4
a1 a2 a3 insert a2
1 2 3
a a a a2 a1 a3 i j insert a3 insert a3
2
a1 a2 a3 i j i j a2 a1 a3 i j a1 a2 a3 i j
1 2 3
2 1 3
i j
1 3 2 3 1 2 2 3 1 3 2 1
9/29/11 CS 3343 Analysis of Algorithms 5
a1 a2 a3 insert a2
1 2 3
a a a a2 a1 a3 i j insert a3 insert a3
2
a1 a2 a3 i j i j a2 a1 a3 i j a1 a2 a3 i j
1 2 3
2 1 3
i j
1 3 2 3 1 2 2 3 1 3 2 1
9/29/11 CS 3343 Analysis of Algorithms 6
a1 a2 a3 insert a2
1 2 3
a a a a2 a1 a3 i j insert a3 insert a3
2
a1 a2 a3 i j i j a2 a1 a3 i j a1 a2 a3 i j
1 2 3
2 1 3
i j
1 3 2 3 1 2 2 3 1 3 2 1
9/29/11 CS 3343 Analysis of Algorithms 7
a1 a2 a3 insert a2
1 2 3
a a a a2 a1 a3 i j insert a3 insert a3
2
a1 a2 a3 i j i j a2 a1 a3 i j a1 a2 a3 i j
1 2 3
2 1 3
i j
1 3 2 3 1 2 2 3 1 3 2 1
9/29/11 CS 3343 Analysis of Algorithms 8
a1 a2 a3 insert a2
1 2 3
a a a a2 a1 a3 i j insert a3 insert a3
2
a1 a2 a3 i j i j a2 a1 a3 i j a1 a2 a3 i j
1 2 3
2 1 3
i j
1 3 2 3 1 2 2 3 1 3 2 1
9/29/11 CS 3343 Analysis of Algorithms 9
a1 a2 a3 insert a2
1 2 3
a a a a2 a1 a3 i j insert a3 insert a3
2
a1 a2 a3 i j i j a2 a1 a3 i j a1 a2 a3 i j
1 2 3
2 1 3
i j
1 3 2 3 1 2 2 3 1 3 2 1
9/29/11 CS 3343 Analysis of Algorithms 10
9/29/11 CS 3343 Analysis of Algorithms 11
9/29/11 CS 3343 Analysis of Algorithms 12
9/29/11 CS 3343 Analysis of Algorithms 13
9/29/11 CS 3343 Analysis of Algorithms 14
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 15
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 16
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 17
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 18
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 19
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 20
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 21
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 22
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 23
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 24
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 25
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 26
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 27
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 28
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 29
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 30
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 31
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 32
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 33
1 2 3 4 5 1 2 3 4
1 2 3 4 5
1 2 3 4
9/29/11 CS 3343 Analysis of Algorithms 34
9/29/11 CS 3343 Analysis of Algorithms 35
9/29/11 CS 3343 Analysis of Algorithms 36
9/29/11 CS 3343 Analysis of Algorithms 37
9/29/11 CS 3343 Analysis of Algorithms 38
9/29/11 CS 3343 Analysis of Algorithms 39
9/29/11 CS 3343 Analysis of Algorithms 40
9/29/11 CS 3343 Analysis of Algorithms 41
9/29/11 CS 3343 Analysis of Algorithms 42
231 2423222120 0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1
4 3 4 2 4 1 4 0
0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1
4 4 6
(24)3 (24)2 (24)1 (24)0 (24)7 (24)6 (24)5(24)4 163 162 161 160
0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1
167 166 165 164 163 162 161 160
2 8 13=D 3 12=C 6 7 5
167 166 165 164
9/29/11 CS 3343 Analysis of Algorithms 43
(28)3 (28)2 (28)1 (28)0
0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1
2563 2562 2561 2560
0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1
2563 2562 2561 2560
40 211 198 117
0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1
(216)1 (216)0 655361 655360
0 0 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1
655361 655360
10451 50805 9/29/11 CS 3343 Analysis of Algorithms 44
65536 65536
9/29/11 CS 3343 Analysis of Algorithms 45
9/29/11 CS 3343 Analysis of Algorithms 46
9/29/11 CS 3343 Analysis of Algorithms 47
9/29/11 CS 3343 Analysis of Algorithms 48
9/29/11 CS 3343 Analysis of Algorithms 49
Return to last slide viewed.
9/29/11 CS 3343 Analysis of Algorithms 50
9/29/11 CS 3343 Analysis of Algorithms 51
Replica of punch card from the 1900 U.S. census. [Howells 2000]
9/29/11 CS 3343 Analysis of Algorithms 52
Figure from [Howells 2000].
9/29/11 CS 3343 Analysis of Algorithms 53
Hollerith Tabulator, Pantograph, Press, and Sorter
9/29/11 CS 3343 Analysis of Algorithms 54
9/29/11 CS 3343 Analysis of Algorithms 55
Produced by the WWW Virtual Punch- Card Server.
9/29/11 CS 3343 Analysis of Algorithms 56