Académique Documents
Professionnel Documents
Culture Documents
Hassria Bint
Welcome to Scribd - Where the world comes to read, discover, and share...
Were using Facebook to give you reading recommendations based on what your friends are sharing and the things you like. We've also made it easy to connect with your friends: you are now following your Facebook friends who are on Scribd, and they are following you! In the future you can access your account using your Facebook login and password. Learn moreNo thanks Some of your friends are already on Scribd:
langage C
Ralis par Mohamed HOUSNI1
re
Contenu
(capture d'cran)
tableau Tab avec des entiers. 2. Proposer l'utilisateur de choisir entre les algorithmes de tri suivant:1. Le tri bulle2. Le tri
par slection3. Le tri par permutation4. Le tri par insertion5. Le tri par fusion6. Le tri rapide 3.
Renvoyer le tableau dans lequel les entiers sont classs par ordre croissant.
Prsentation des
les couplesd'lment s successifs.Lorsq ue deux lmentssuccessi fs ne sont pas dansl'ordre croissant, ils
sontchangs. Aprs chaqueparcours complet de la liste,l'algorithme recommencel'op ration. Lorsqu'aucunch ange n'a lieu
pendant unparcours, cela signifie que laliste est trie : l'algorithmepeut s'arrter. // tri bulle
#define TRUE 1#define FALSE 0 void tri_a_bulle( int *t, int n){
(en_desordre){en _desordre = FALSE; for (j =0; j < n-1; j++){ if (t[j] > t[j+1]){tmp =
t[j+1];t[j+1] = t[j];t[j] = tmp;en_desordre = TRUE;}}}}Le tri par slctionLe tri par slection (ou tri parextraction) est
undesalgorithme s de triles plustriviaux. Il consiste en larecherche soit du plus grandlment (ou le plus petit) quel'on va
replacer sa positionfinale c'est--dire endernire position (ou enpremire), puis on recherchele second plus grand lment
// tri par slection void tri_selection( int *t, int n){ int
i, min, j , tmp; for (i =0; i < n -1; i++) {min = i; for (j = i+1; j < n ; j++) if
quel'on va replacer galement sa position finale c'est--direen avant-dernire position (ouen seconde), etc., jusqu' ceque le
tableau soitentirement tri.tmp = t[i];t[i] = t[min];t[min] = tmp;}}} Le tri par permutation Le tri par permutation est
letri du jeu de cartes, ilconsiste parcourir le tableau jusqu' ce que l'on trouve unlment plus petit que leprcedent donc mal plac.On
prend cet lment et on lerange sa place dans letableau puis on continue lalecture.On s'arrte la fin dutableau.
// tri par permutation void tri_permutation( int *t, int n){ int
i,s=0,k; int nb[n]; int res [n]; for (i=0;i<n;i++){ for (k=0;k<n;k++){
Le tri par insertion consiste parcourir la liste : on prendles lments dans l'ordre.Ensuite, on les compare avecles lments prcdents jusqu'
trouver la place del'lment qu'on considre. Ilne reste plus qu' dcaler leslments du tableau pourinsrer l'lment
considr sa place dans la partie djtrie. // tri par insertion void tri_insertion( int *t,
(i =1; i < n; i++){x = t[i];p = i-1; while (t[p] > x && p->0) {}p++; for
(j = i-1; j >= p; j-) {t[j+1] = t[j];}t[p] = x;}} Tri par fusion Le tri fusion est construit // tri par fusion void fusion(
base de lastratgie "diviser pourrgner" est que pour rsoudreun gros problme, il estsouvent plus facile de
lediviser en petits problmeslme ntaires. Une fois chaquepetit problme rsolu, il ny aplus qu combiner lesdiffrentes
solutions pourrsoudre le problme global.La mthode "diviser pourrgner" est tout faitapplicable au problme de tri
:plutt que de trier le tableaucomplet, il est prfrable detrier deux sous tableaux detaille gale, puis de fusionnerles rsultats.Lalgori
thme propos ici estrcursif. En effet, les deuxsous tableaux seront euxmme tris laide delalgorithme de tri fusion.
Untableau ne comportant quunseul lment sera considrcomme tri : cest la conditionsine qua non sans laquellelalgorith
me naurais pas deconditions darrt. Etapes delalgorithme :Division de lensemble devaleurs en deux parties- Tri de chacun des
deuxensemblesFusion des deux ensembles{ int *table1; int deb2=fin1+1; int compt1=deb1;
Le tri rapide La mthode consiste placerun lment du tableau (appelpivot) sa place dfinitive, enpermutant tous
les lmentsde telle sorte que tous ceuxqui lui sont infrieurs soient sa gauche et que tous ceux quilui sont suprieurs soient sa
18 p.
1 p.
2. 2 p.
7 p.
24 p.
3. 15 p.
2 p.
9 p.
4.
24 p.
52 p.
8 p.
5.
8 p.
31 p.
23 p.
6.
2 p.
60 p.
60 p.
7.
60 p.
65 p.
65 p.
8.
65 p.
11 p.
1 p.
9.
15 p.
1 p.
30 p.
10.
11 p.
15 p.
19 p.
11.
1 p.
18 p.
2 p.
1 p.
29 p.
10 p.
2.
47 p.
34 p.
3 p.
3.
2 p.
3 p.
4 p.
4.
2 p.
2 p.
2 p.
Recent Readcasters
Add a Comment
Nassim Hmidileft a comment is reading Langage C: Les Diffrents Algorithmes de Tri. 10 / 19 / 2011 gogolplex1left a comment thank you for readcasting ! 10 / 10 / 2010 Upload a Document Search Documents
About Press Blog Partners Scribd 101 Web Stuff Support FAQ Developers / API Jobs Terms Copyright Privacy