0% ont trouvé ce document utile (0 vote)
104 vues1 page

Programme C Tri Rapide

Le document présente un programme en C pour l'algorithme de tri rapide (QuickSort) qui ordonne un tableau d'entiers en utilisant la récursivité. Il décrit la manière dont le pivot est choisi et comment les valeurs sont réorganisées autour de celui-ci. Le programme inclut également des fonctions pour l'initialisation du tableau et l'affichage des résultats triés.

Transféré par

zangacheick07
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
104 vues1 page

Programme C Tri Rapide

Le document présente un programme en C pour l'algorithme de tri rapide (QuickSort) qui ordonne un tableau d'entiers en utilisant la récursivité. Il décrit la manière dont le pivot est choisi et comment les valeurs sont réorganisées autour de celui-ci. Le programme inclut également des fonctions pour l'initialisation du tableau et l'affichage des résultats triés.

Transféré par

zangacheick07
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

{

Programme C de tri rapide int i;


for(i=deb; i < taille; i++)
#include <stdio.h> {
#include <stdlib.h> printf("valeur %d : ",i);
#include <time.h> scanf("%d", &tab[i]);
/* }
Cet algorithme appelé ALGORITHME TRI RAPIDE (QuickSort) }
il s'agit d'ordonner le tableau à partir d'un pivot (valeur
choisie dans le tableau (généralement la première valeur) /* fonction de tri RECURSIF
Dans ce mêmetableau on classe à gauche les valeurs inférieurs et */
à droite les valeurs supérieurs. void tri_tab_recursif(int tab[],int deb,int fin)
Ensuite on rappelle l'ALGORIHTME TRI RAPIDE, {
une fois pour la partie gauche, une fois pour la partie droite. const int pivot = tab[deb];
Là est la récursivité. int pos=deb;
int i;
Programmé en novembre 2013 pour ISN - Etienne Poulin if (deb>=fin)
*/ return;

/* Programme principal /* cette boucle permet de placer le pivot (début du tableau à trier)
*/ au bon endroit dans le tableau
int main() avec toutes les valeurs plus petites avant
{ et les valeurs plus grandes après
int taille_1=10; à la fin, la valeur pivot se trouve dans le tableau à tab[pos]
int tableau[taille_1]; */
int i; for (i=deb; i<fin ; i++)
{
printf("bonjour; Voici un programme de tri de %d nombres \n", taille_1); if (tab[i]<pivot)
{
/* Saisie par l'opérateur des valeurs entières dans le tableau */ tab[pos]=tab[i];
init_tab(tableau,0,taille_1); pos++;
tab[i]=tab[pos];
/* Tri du tableau */ tab[pos]=pivot;
tri_tab_recursif(tableau,0,taille_1);
}
/* Affichage du tableau trié */ }
for(i=0;i<taille_1;i++) /* Il ne reste plus qu'à rappeler la procédure de tri
{ sur le début du tableau jusquà pos (exclu) : tab[pos-1]
printf("%d ",tableau[i]); */
} tri_tab_recursif(tab,deb,pos);
putchar('\n');
} /* et de rappeler la procédure de tri
sur la fin du tableau à partir de la première valeur après le pivot
tab[pos+1]
/* fonction qui permet à l'opérateur de saisir sa liste de nombres */
*/ tri_tab_recursif(tab,pos+1,fin);
void init_tab(int tab[], int deb, int taille) }
Etienne Poulin – ISN – Novembre 2013

Vous aimerez peut-être aussi