Code source du tri par "creation"
trouve_position_suivant(tableau T,entier position_dernier,entier maxi)
debut
entier i
entier longueur<-taille(T)
entier valeur_dernier<-T(position_dernier)
entier position_suivant<-(-1)
entier valeur_suivant<-maxi
//parcours du tableau pour rechercher la valeur suivante
pour i=0 à (longueur-1) faire
si tableau(i)=valeur_dernier & i>position_dernier alors
retourner(i) //la valeur suivante est égale à la valeur du dernier élément trouvé
fin si
si tableau(i)>valeur_dernier & tableau(i)<valeur_suivant alors
//on a trouvé une valeur qui pourrait être la suivante
valeur_suivant<-tableau(i)
position_suivant<-i
fin si
si tableau(i)=maxi & position_suivant=-1
//on a trouvé le plus grand élément du tableau
//s'il n'y a pas d'élément suivant, la position de l'élément suivant est la position du dernier élément
position_suivant<-i
fin si
fin pour
retourner(position_suivant)
fin
tri_par_creation(tableau T)
debut
entier longueur<-taille(T)
tableau resultat
taille(resultat)<-longueur
entier position_dernier<-0
entier mini<-T(0)
entier maxi<-T(0)
entier i
//recherche du plus petit et du plus grand élément du tableau
//recherche de la position du plus petit élément (phase d'initialisation)
pour i=1 à (longueur-1) faire
si T(i)<mini alors
position_dernier<-i
mini<-T(i)
sinon
maxi<-T(i)
fin si
fin pour
//on place le premier élément du tableau destination
resultat(0)<-mini
pour i=1 à (longueur-1) faire
position_dernier<-trouve_position_suivant(T,position_dernier,maxi) //recherche de la position de l'élément suivant
si position_dernier<>-1 alors //si on a trouvé la position de l'élément suivant
resultat(i)<-T(position_dernier) //on place cet élément dans le tableau destination
sinon //on n'a pas trouvé la position de l'élément suivant
afficher("Erreur dans le cri par création, l'un des éléments a été perdu !!!!") //on soupçonne donc une erreur
fin si
fin pour
retourner(resultat)
fin