Code source du tri par "creation"
private static int posSuivant(int tableau[],int posDernier,int maxi)
{
int longueur=tableau.length;
int valDernier=tableau[posDernier];
int posSuivant=-1;
int valSuivant=maxi;
for(int i=0;i<longueur;i++)
{
if(tableau[i]==valDernier && i>posDernier)
{
return(i);
}
if(tableau[i]>valDernier && tableau[i]<valSuivant)
{
valSuivant=tableau[i];
posSuivant=i;
}
if(tableau[i]==maxi && posSuivant==-1)
{
posSuivant=i;
}
}
return(posSuivant);
}
public static int[] triParCreation(int tableau[])
{
int longueur=tableau.length;
int result[]=new int[longueur];
int posDernier=0;
int mini=tableau[0];
int maxi=tableau[0];
for(int i=1;i<longueur;i++)
{
if (tableau[i]<mini)
{
posDernier=i;
mini=tableau[i];
}
else if (tableau[i]>maxi)
{
maxi=tableau[i];
}
}
result[0]=mini;
for(int i=1;i<longueur;i++)
{
posDernier=posSuivant(tableau,posDernier,maxi);
if (posDernier!=-1)
{
result[i]=tableau[posDernier];
}
else
{
System.err.println("Erreur dans le triParCreation, l'un des éléments a été perdu !!!");
}
}
return(result);
}