Download presentation
Presentation is loading. Please wait.
Published byMaximilian Hunter Modified over 9 years ago
1
Sorting in Linear Time Lecture 5 Asst. Prof. Dr. İlker Kocabaş
2
How fast can we sort?
3
Decision-tree example
9
Lower Bound for decision-tree sorting
10
Lower bound for comparison sorting
11
Sorting in linear time Counting something, like histograms, can help us to sort an array. –clr = getcolor(x,y) –count[ clr ]++; Limitation: count[0..255]
12
Sorting in linear time
13
Counting sort COUNTING-SORT(A,B,k) // Initialize aux. store // Count how many times occurred. // Cumulative sums of aux. store // ???
14
Counting-sort example
29
Analysis
30
Running Time
31
Stable sorting
32
Counting sort array size limitation problem If we need sort 32 bits integers, size of count array 2 32 = 4GB ! Unsorted array size is usually smaller than this (1KB << 4GB) Solution... Use smaller parts like digits and sort these parts particularly : Radix sort
33
Radix sort
34
Operation of radix sort
35
Analysis of radix sort Given n d-digit number in which each digit can take on up to k-possible values, the running time of RADIX-SORT sorts these numbers is (d*(n+k))
36
Analysis of radix sort Assume counting sort is the auxilary sort. Sort n computer words of b-bits each. Each word can be viewed as having d=b/r (base-2 r ) digits. Example: Each key having d-digits of r bits. Let d=4, r=8 (b=32) then each digit is an integer in the range 0 to 2 r -1 = 2 8 -1=255. r=8
37
Analysis of radix sort: Choosing r How many passes should we make? Each word of length b=rd bit is broken into r-bit pieces. For a given word length of b, the running time of an array of length n that is T(r|n,b) can be minimized with respect to r.
38
Analysis of radix sort: Choosing r
40
Conclusions
41
What about floating points? Integer can countable or divisible to parts. How can speed up sorting array of floating point numbers. We can group into k-parts –For numbers beetween 0.0 ≤ f ≤ 1.0 –k*f have an integer part like 8.71 –int(k*f) is part number. –k can be length of array.
42
Bucket Sort
43
.78.17.39.26.72.94.21.12.23.68 1 2 3 4 5 6 7 8 9 10 A 0 1 3 4 5 6 7 B 9.17 /.12.21.78 /.26 /.68 /.72.94 /.23 8 2
44
Bucket Sort Running time:
45
Bucket Sort
51
Order Statistics
63
Hairy recurrence (cont.)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.