Sorting in Linear Time
Pedro Ribeiro
DCC/FCUP
2018/2019
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 1 / 18
Sorting in Linear Time Pedro Ribeiro DCC/FCUP 2018/2019 Pedro - - PowerPoint PPT Presentation
Sorting in Linear Time Pedro Ribeiro DCC/FCUP 2018/2019 Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 1 / 18 Sorting with and without comparisons We have already talked about several algorithms for sorting They were based on
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 1 / 18
◮ Quicksort ◮ Mergesort ◮ There are others such as Heapsort, ...
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 2 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 3 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 4 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 5 / 18
◮ Ex: sorting persons - tuples (name, age) - only by age
◮ This is why it may be used as a subroutine in Radix Sort, as we’ll see Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 6 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 7 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 8 / 18
◮ Ex: sort dates by year, then by month, then by day
◮ We can sort n b-bit numbers in Θ((b/r)(n + 2r)) with counting sort ⋆ Each key has ⌈b/r⌉ digits of r bits each (our d) ⋆ Each digit is an integer in the range 0 to 2r − 1 (our k) Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 9 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 10 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 11 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 12 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 13 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 14 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 15 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 16 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 17 / 18
Pedro Ribeiro (DCC/FCUP) Sorting in Linear Time 2018/2019 18 / 18