COUNTING SORT

pseudomonstre Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
int* counting_sort(int* arr, int k, int size)
{
int *B, *C;
C = (int*) malloc(sizeof(int)*k);
B = (int*) malloc(sizeof(int)*size);

for(int i=0;i<k; i++) C[i] = 0;
// get the count of elements in arr.
// ASSUMPTION: All elements in arr is < k
for(int i=0;i<size;i++) C[arr[i]]++;

for(int i=k-1;i>0;i--) C[i-1] += C[i];

for(int j=0;j<size;j++) {
B[C[arr[j]]] = arr[j];
C[arr[j]]--;
}
return B;
}
void main()
{
int A[] = {2,3,4,1,6,8,7,5};
int *b;
b = counting_sort(A, 9, 8);
// b[0] is garbage, unused entry
std::cout<<b[0]<<std::endl;

// b[1]..b[size] is filled with sorted
std::cout<<b[1];
}

est ce que ce programme est en langage C? si cest oui quelqu'un pourrait me le traduire en francais?
je ne comprends rien et cest urgent :(
je vous remercie

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour, ← ne pas oublier la politesse c'est important !

    Oui c'est du C.

    Des explications sont disponibles ici :
    http://analgorithmaday.blogspot.com/2011_03_08_archive.html
    0
    1. pseudomonstre Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonsoir KX
      je vous remercie pour votre reponse mais mon probleme cest que je ne comprends pas anglais je suis debutante. merci
      0
      1. Mosca > pseudomonstre Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour,
        explications en français

        https://fr.wikipedia.org/wiki/Tri_comptage
        0
      2. pseudomonstre Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > Mosca
         
        Merci :)
        0
    2. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      @KX, je dirais du C++ vu la présence de
      std::cout
      , mais il peut bien sûr être aisément remplacé par un
      printf()
      en C.
      0