Yash_
New Coder
Svp aider moi dans mon code pour trier par la methode du tri rapide, j'essais d'implementer en C pour trier un tableau d
e taille 100 mais sa ne marche pas et je demande de l'aide.
C:
/*fonction partionner(T: Tableau d'entiers; imin,imax: entier): entier
Var pivot, i, j, temp: entier
Début
pivot ← T[imax]
i ← imin
j ← imax-1
Tant que i<=j faire
Tant que i<imax et T[i] <= pivot faire
i ← i+1
Fin Tant que
Tant que j>=imin et T[j] >= pivot faire
j ← j-1
Fin Tant que
Si i<j alors {échange }
temp ← T[i]
T[i] ← T[j]
T[j] ← temp
FinSi
Fin Tant que
T[imax] ← T[i]
T[i] ← pivot
Retourner i
Fin
procédure triRapide(T: Tableau d'entiers: imin,imax: entier)
Var position_pivot : entier
Début
Si imin < imax alors
position_pivot ← partitionner(T, imin, imax)
tri_rapide(T, imin, position_pivot - 1)
tri_rapide(T, position_pivot + 1, imax)
FinSi
Fin
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int partitionner(int *T, int imin, int imax)
{
int pivot,i,j, temp;
int pivot = T[imax], i = imin, j = imax-1 ;
temp int ;
tandis que
{
fais
tandis que (i<imax & T[i] <= pivot);
je++ ; // On fait croire que je
fais
tandis que (j>=imin & T[j] >= pivot);
j-- ; // On fait décroite j
si (je < j)
{
temp = T[i] ;
T[i] = T[j] ;
T[j] = temp ;
}
autre
T[imax] ← T[i]
T[i] ← pivot
retourner je ;
}
}
void triRrapide(int T[], int imin, int imax)
{
int pivot ;
si(imin < imax)
{
pivot = partitionner(T,imin, imax);
tri_rapide(T, imin, pivot-1);
tri_rapide(T, pivot+1, imax);
}
}