Advertisement
xXx_Fortis_xXx

Untitled

May 17th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.65 KB | None | 0 0
  1. void radixSort (int seq[], int len, int elMaxLen, int range){
  2.     int **tempTable = malloc(sizeof(*tempTable)*range);
  3.     for (int i = 0; i < range; i++){
  4.         tempTable[i] = malloc(sizeof(**tempTable)*(len+1));
  5.         tempTable[i][0] = 0;
  6.     }
  7.    
  8.     for (int i = 0; i < elMaxLen; i++){
  9.         for (int j = 0; j < len; j++){
  10.             int key = seq[j]/((int)pow(10, i))%10;
  11.             tempTable[key][++tempTable[key][0]] = seq[j];
  12.         }
  13.         int j = 0;
  14.         for (int k = 0; k < range; k++){
  15.             for (int l = 0; l < tempTable[k][0]; l++){
  16.                 seq[j++] = tempTable[k][l+1];
  17.             }
  18.             tempTable[k][0] = 0;
  19.         }
  20.     }
  21.    
  22.     for (int i = 0; i < range; i++){
  23.         free(tempTable[i]);
  24.     }
  25.     free(tempTable);
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement