Bonjour tout le monde, j'étudie le C et un exercice me bloque, voici :
Je dois programmer un tri rapide (quicksort) de manière générique sa déclaration est la suivante :
Pour effectuer mes tests je possède un tableau d'entier généré aléatoirement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part quicksort(void *array,int numberElem,int size, int *cmp(void*,void*));
J'ai dans un premier temps du effectuer un tri rapide uniquement sur ce tableau d'entier, je posséde donc un tri rapide pour tableau d'entier que j'essaye d'adapter de manière générique.
Voici le début de mon code de quicksort générique :
Ma question est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void quicksort (void *array, int numberElem, int size,int(*cmp)(const void * a, const void * b)) { char *localA=(char *) array; int haut=0; }
Sachant que je converti le void en char et que je connais la taille d'un entier (4) je vais donc comparer les cellules en accédant a leur indices de la manières :
localA+i*size
Mais en comparant les cases du tableau de char 1 par 1 il se peut que le chiffre entier réellement représenté par les 4 char consécutif sois plus grand que celui représenté par les 4 autres char comparé ?
J'espère avoir été clair , merci pour votre future aide !
Partager