diff --git a/Radix_sort.cpp b/Radix_sort.cpp new file mode 100644 index 0000000..a5b489b --- /dev/null +++ b/Radix_sort.cpp @@ -0,0 +1,77 @@ +` + // Radix Sort + #include +using namespace std; + +int Getmax(int arr[],int size){ + int max=arr[0]; + for (int i = 1; i < size; i++) + { + if (arr[i]>max) + { + max=arr[i]; + } + + } + return max; +} + +void CountingSort(int arr[],int size,int div){ + int output[size]; + int count[10]={0}; + + for (int i = 0; i < size; i++) + { + count[(arr[i]/div)%10]++; + } + for (int i = 1; i < 10; i++) + { + count[i]+=count[i-1]; + } + for (int i = size-1; i >= 0; i--) + { + output[count[(arr[i]/div)%10 ]-1]=arr[i]; + count[(arr[i]/div)%10]--; + } + for (int i = 0; i < size; i++) + { + arr[i]=output[i]; + } + +} + +void radixSort(int arr[],int size){ + int m = Getmax(arr,size); + + for (int div= 1; m/div >0; div*=10) + { + CountingSort(arr,size,div); + } + +} + +int main(){ + int size; + cout<<"Enter size of array: "; + cin>>size; + + int arr[size]; + cout<<"Enter "<> arr[i]; + } + + for(int i=0;i