mdzafir_alvi

radix sort (without linklist)

Dec 28th, 2015
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.82 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void) {
  5.  
  6.     int n , i , j , passes , digit , x = 1 , k;
  7.  
  8.  
  9.     int ar[100];
  10.  
  11.     printf("enter number of values: ");
  12.  
  13.     scanf( "%d",&n);
  14.     //printf("enter the numbers: ");
  15.  
  16.     for(i=0;i<n;i++)ar[i]=rand()%1000;//scanf(" %d",&ar[i]);
  17.  
  18.     printf("before sort:\n");
  19.     for(i=0;i<n;i++)printf(" %d",ar[i]);
  20.     printf("\n");
  21.  
  22.     for(passes=1;passes<=3;passes++){
  23.         int table[10][n];
  24.         for(i=0;i<=9;i++){
  25.             for(j=0;j<n;j++){
  26.                 table[i][j]=-9999;
  27.             }
  28.         }
  29.         for(i=0;i<n;i++){
  30.             digit=(ar[i]/x)%10;
  31.             table[digit][i]=ar[i];
  32.         }
  33.         k=0;
  34.         for(i=0;i<=9;i++){
  35.             for(j=0;j<n;j++){
  36.                 if(table[i][j]!=-9999){
  37.                     ar[k]=table[i][j];
  38.                     k=k+1;
  39.                 }
  40.             }
  41.         }
  42.         x*=10;
  43.     }
  44.  
  45.     printf("after sort:\n");
  46.     for(i=0;i<n;i++)printf(" %d",ar[i]);
  47.     printf("\n");
  48.  
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment