In this project, you will explore a few sorting algorithms. You will also test their efficiency by both timing how long a given sorting operation takes and counting its basic operations.
You will (at a later date) be provided with code for a number of different arrays of varying sizes to test these sorting algorithms with.
Listed below are the steps of the Radix Sort algorithm:
Starting with the lowest digit (i.e.: 1s place):
1. Group all elements by digit. Keep the elements order the same as the order they are added to these groups.
2. Merge all these groups into one array, from lowest digit grouping to highest
3. Repeat the process for the next lowest digit, until you sort by the highest most digit of any number
Here's an example of this algorithm in process:
Unsorted array: 170, 45, 75, 90, 802, 24, 2, 66
Sort by 1s place: 170, 90, 802, 2, 24, 45, 75, 66
Sort by 10s place: 802, 2, 24, 45, 66, 170, 75, 90
Sort by 100s place: 2, 24, 45, 66, 75, 90, 170, 802
Note that in each step of the process, any missing digit is counted as a 0.
Radix sort requires you to extract a single digit from an Integer. There are at least two ways to perform this operation: one involves using the division/modulus operators, the other involves converting the integer to a String.