Advertisement
Guest User

Ordenação por contagem

a guest
Nov 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.74 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. #define MAX 225
  6.  
  7. void ord_contagem(int *arr,int size)
  8. {
  9.     int retorno[size];
  10.     int count[MAX + 1],i;
  11.     memset(count,0,sizeof(count));
  12.    
  13.     for(i=0 ; arr[i] ; i++)
  14.         ++count[arr[i]];
  15.        
  16.     for(i = 1 ; i <= MAX ; i++)
  17.         count[i] += count[i - 1];
  18.        
  19.     for(i = 0; arr[i] ;i++)
  20.     {
  21.         retorno[ count[arr[i] ] - 1] = arr[i];
  22.         --count[arr[i]];
  23.     }
  24.     for( i = 0 ; arr[i] ; i++)
  25.         arr[i] = retorno[i];
  26. }
  27.  
  28. int main(void)
  29. {
  30.   int n,a;
  31.   scanf("%d",&n);
  32.   int *vector = (int *)calloc(n,sizeof(int));
  33.   for(a = 0;a < n;a++)
  34.         scanf("%d",&vector[a]);
  35.     ord_contagem(vector,n);
  36.   for(a = 0;a < n-1;a++)
  37.         printf("%d ",vector[a]);
  38.   printf("%d\n",vector[n-1]);
  39.     free(vector);
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement