From 824107a82e2ba08e01433776d5ac5c16404a2173 Mon Sep 17 00:00:00 2001 From: Deepak Aryal Date: Thu, 31 Oct 2019 21:53:50 +0530 Subject: [PATCH] radix sort c++ implementation --- Sorting Algorithms/radix.txt | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Sorting Algorithms/radix.txt diff --git a/Sorting Algorithms/radix.txt b/Sorting Algorithms/radix.txt new file mode 100644 index 0000000..6b983d9 --- /dev/null +++ b/Sorting Algorithms/radix.txt @@ -0,0 +1,43 @@ +// C++ implementation of Radix Sort +#include +using namespace std; +int getMax(int arr[], int n){ + int mx = arr[0]; + for (int i = 1; i < n; i++) + if (arr[i] > mx) + mx = arr[i]; + return mx; +} +void countSort(int arr[], int n, int exp){ + int output[n]; // output array + int i, count[10] = {0}; + for (i = 0; i < n; i++) + count[ (arr[i]/exp)%10 ]++; + for (i = 1; i < 10; 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 < n; i++) + arr[i] = output[i]; +} +void radixsort(int arr[], int n){ + int m = getMax(arr, n); + for (int exp = 1; m/exp > 0; exp *= 10) + countSort(arr, n, exp); +} +void print(int arr[], int n){ + for (int i = 0; i < n; i++) + cout<>n; + int arr[n]; + for(int i=0;i>arr[i]; + radixsort(arr, n); + print(arr, n); + return 0; +} \ No newline at end of file