Tri par permutation

Fermé
simsimow Messages postés 6 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 10 janvier 2010 - 18 déc. 2009 à 17:27
Adnane91 Messages postés 35 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 4 juillet 2010 - 17 janv. 2010 à 18:27
Bonjour,tout le monde je tiens vraiment a demander votre aide afin d'etre capable de comprendre un algorithme de tri par permutation.
Exemple + explication SVP

13 réponses

faith cure Messages postés 32 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 27 février 2011 23
18 déc. 2009 à 17:59
salut simsimow je souhaite que ça que tu veux c'est un algorithme

Le tri par permutation :
POUR i ALLANT DE 1 A 9
FAIRE
SI (TAB (i+1) < TAB (i)) ALORS
Abouger reçoit TAB (i+1)
j reçoit 1 ;
TanQue ((j < i) ET (TAB (j) < TAB (i+1)))
Faire j reçoit j+1
Fin Tant Que
POUR k ALLANT DE i+1 A j+1 PAS –1
Faire
TAB (k) reçoit TAB (k-1)
FinPour
TAB (j) reçoit abouger
Fin SI
Fin Pour
et en langage C essaies:
#include <stdio.h>
void main(void)
{
int v[50]; /* tableau donné */
int N; /* dimension */
int I; /* rang à partir duquel A est trié */
int J; /* indice courant */
int AIDE; /* permutation */
int FIN; /* dernière permutation. */


/* Entrée du tableau */
printf("Dimension du tableau : ");
scanf("%d", &N );
for (J=0; J<N; J++)
{
printf("Element %d : ", J+1);
scanf("%d", &v[J]);
}
/* Affichage du tableau */
printf("Tableau donne :\n");
for (J=0; J<N; J++)
printf("%d ", v[J]);
printf("\n");

/* Tri du tableau */
for (I=N-1 ; I>0 ; I=FIN)
{
FIN=0;
for (J=0; J<I; J++)
if (v[J]>v[J+1])
{
FIN=J;
AIDE=v[J];
v[J]=v[J+1];
v[J+1]=AIDE;
}
}

/* résultat */
printf("Tableau trie :\n");
for (J=0; J<N; J++)
printf("%d ", v[J]);
printf("\n");
}
Permuter T:Tableau[N] d’Entiers
qui permute les valeurs des éléments d’indices ind1 et ind2 du
tableau T.
il compart les elements deux à deux.
5