Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void radixSort (int seq[], int len, int elMaxLen, int range){
- int **tempTable = malloc(sizeof(*tempTable)*range);
- for (int i = 0; i < range; i++){
- tempTable[i] = malloc(sizeof(**tempTable)*(len+1));
- tempTable[i][0] = 0;
- }
- for (int i = 0; i < elMaxLen; i++){
- for (int j = 0; j < len; j++){
- int key = seq[j]/((int)pow(10, i))%10;
- tempTable[key][++tempTable[key][0]] = seq[j];
- }
- int j = 0;
- for (int k = 0; k < range; k++){
- for (int l = 0; l < tempTable[k][0]; l++){
- seq[j++] = tempTable[k][l+1];
- }
- tempTable[k][0] = 0;
- }
- }
- for (int i = 0; i < range; i++){
- free(tempTable[i]);
- }
- free(tempTable);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement