Sreekar_0125

Untitled

Sep 25th, 2022
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.06 KB | None | 0 0
  1.     #include<stdio.h>
  2.     #include<limits.h>
  3.     void countSort(int arr[],int n,int exp) {
  4.         int count[10];
  5.         int output[n];
  6.         for(int i=0;i<10;i++) count[i]=0;
  7.         for(int i=0;i<n;i++) {
  8.             count[(arr[i]/exp)%10]++;
  9.         }
  10.         for(int i=1;i<10;i++) {
  11.             count[i]+=count[i-1];
  12.         }
  13.         for(int i=n-1;i>=0;i--) {
  14.             count[(arr[i]/exp)%10]--;
  15.             output[count[(arr[i]/exp)%10]] = arr[i];
  16.         }
  17.         for(int i=0;i<n;i++) {
  18.             arr[i] = output[i];
  19.         }
  20.     }
  21.     void radixSort(int arr[],int n) {
  22.         int maxi=INT_MIN;
  23.         for(int i=0;i<n;i++) {
  24.             if(arr[i]>maxi) maxi=arr[i];
  25.         }
  26.         for(int exp=1;(maxi/exp)!=0;exp*=10) {
  27.             countSort(arr,n,exp);
  28.         }
  29.     }
  30.     int main () {
  31.         int n; scanf("%d",&n);
  32.         int a[n];
  33.         for(int i=0;i<n;i++) {
  34.             scanf("%d",(a+i));
  35.         }
  36.         radixSort(a,n);
  37.         for(int i=0;i<n;i++) {
  38.             printf("%d ",a[i]);
  39.         }
  40.         return 0;
  41.     }
Advertisement
Add Comment
Please, Sign In to add comment