The program output is also shown below. /* * C++ Program To Implement Radix Sort */ #include…
The program output is also shown below.
- /*
- * C++ Program To Implement Radix Sort
- */
- #include
- #include
- using namespace std;
- /*
- * get maximum value in arr[]
- */
- int getMax(int arr[], int n)
- {
- int max = arr[0];
- for (int i = 1; i
- if (arr[i] > max)
- max = arr[i];
- return max;
- }
- /*
- * count sort of arr[]
- */
- void countSort(int arr[], int n, int exp)
- {
- int output[n];
- int i, count[10] = {0};
- for (i = 0; i
- count[(arr[i] / exp) % 10]++;
- for (i = 1; i
- count[i] += count[i – 1];
- for (i = n – 1; i >= 0; i–)
- {
- output[count[(arr[i] / exp) % 10] – 1] = arr[i];
- count[(arr[i] / exp) % 10]–;
- }
- for (i = 0; i
- arr[i] = output[i];
- }
- /*
- * sorts arr[] of size n using Radix Sort
- */
- void radixsort(int arr[], int n)
- {
- int m = getMax(arr, n);
- for (int exp = 1; m / exp > 0; exp *= 10)
- countSort(arr, n, exp);
- }
- /*
- * Main
- */
- int main()
- {
- int arr[] = {170, 45, 75, 90, 802, 24, 2, 66};
- int n = sizeof(arr)/sizeof(arr[0]);
- radixsort(arr, n);
- for (int i = 0; i
- cout
- return 0;
- }
