Tri indice min et indice max

nesrionata Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
nesrionata Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

tout d'abord mon problème consiste à trier mon tableau de taille n déjà saisi; en utilisant le TRI MIN MAX:

son principe consiste à chercher à chaque itération l'indice du min et l'indice du max et permuter avec les éléments
i et n-i-1.

voilà les fonctions de recherche de ses indices
int getmin (float t[],int n,int i)

{
int p,j;
for(p=i,j=i+1;j<n;j++)
if (*(t+j) < *(t+p))
p=j;
return(p);
}


int getmax (float t[],int n,int i)

{
int p,j;
for(p=i,j=i+1;j<n;j++)
if (*(t+j) > *(t+p))
p=j;
return(p);
}

la procédure de tri est:

void tri_min_max(float t[],int n)

{
int i,i_min,i_max;
for(i=0;i<n/2;i++)
{
i_min=getmin(t,n,i);
i_max=getmax(t,n,i);
permuter(t+i,t+i_min);
if (i_max!=i)
permuter(t+n-i-1,t+i_max);
else
permuter(t+n-i-1,t+i_min);
}
}

voici un exemple:

pour un tableau ayant comme valeurs:{4,1,3,2,6,5}

il m'affiche {1,2,3,6,4,5}

je ne sais quoi faire, merci de m'aider.
A voir également:

2 réponses

toto
 
Bonjour

Si j'ai compris ton algorithme, tu cherches à chaque passage le min et le max, et tu les remets respectivement au début et à la fin de la zone explorée.
Dans ce cas, il me semble que ton intervalle de recherche devrait diminuer par les deux bouts à la fois. Or tu recherches entre i (qui augmente bien) et n (fixe)
0
nesrionata Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
--
Merci toto pour votre réponse,

ce que vous m'avez dit est vrai, mais je ne sais pas comment je dois corriger le problème encore.


enfin nesrionita nesrionata nesrionétaaa !!
0
nesrionata Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
--
svp j'attends vos critiques et réponses.


enfin nesrionita nesrionata nesrionétaaa !!
-2