La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Algorithmique et programmation Informatique Cours 11 26/11/2001.

Présentations similaires


Présentation au sujet: "Algorithmique et programmation Informatique Cours 11 26/11/2001."— Transcription de la présentation:

1 Algorithmique et programmation Informatique Cours 11 26/11/2001

2 Les tris 678910 215 6 12345 79384 Indice, numéro dordre Valeurs à trier 678910 6789 12345 12345 Valeurs triées

3 Les tris

4 Les tris Tri bulle Insertion linéaire Quicksort Tri Shell Fusion

5 Tris: bulle Procedure tri_bulle ( Z: M ) variables i, j: entier; corps i 1; répéter pour j de 1 à N - i faire si Z j > Z j+1 alors Z j+1 Z j fsi fpour i i + 1 jusquei = N - 1 fproc 1_tri_bulle ƒ

6 Tris: insertion linéaire Procedure tri_insertion ( Z: M ) variables i, j: entier;sauve: réel; corps pour i de 2 à N faire sauve Z i ;j i - 1 tant que sauve 1 faire Z j+1 Z j j j - 1 ftant si sauve < Z j alors Z j+1 Z j ; Z j sauve sinon Z j+1 sauve fsi fpour fproc 2_insertion_linéaire ƒ

7 Tris: insertion linéaire Nombre de comparaisons nécessaires : si les nombres à trier sont disposés « au hasard » alors

8 Tris: insertion linéaire Nombre de comparaisons nécessaires: Si j éléments sont déjà triés Pour placer le j+1 ième nombres de comparaisons: j / 2 Pour les placer tous

9 Tris: Quicksort Procedure tri_quick (Z: M ; debut, fin: entier ) variables i, j: entier ; pivot: réel; corps si fin - debut > 0 alors pivot Z debut i debut +1;j fin r épéter tant que Zi < pivot et i < j faire i i + 1 ftant tant que Zj > pivot et i j faire j j - 1 ftant si < j alors Z i Z j ; j j - 1 fsi i i + 1 jusque i > j Z j Z debut tri_quick (debut, j-1) tri_quick (j+1, fin) fsi fproc 3_tri_quicksort ƒ

10 Tris: Quick Nombre de comparaisons nécessaires: Pour le premier vecteur: n comparaisons Pour les deux deuxièmes vecteurs: n/2 et n/2soitn comparaisons Pour les quatres vecteurs: n/4n/4 n/4 n/4soit n comparaisons Nombre de fois que nous pouvons « couper » en deux sous- vecteurs: log 2 n

11 Tris: comparaison Nombre de comparaisons en moyenne N =2kk2kk Séquentielle ~ n 2 /4 Dichotomique ~ n log 2 n 831624 325256160 12874 000900 256816 0002 000 102410260 00010 000 3276815268 000 000490 000

12 Tris: Shell Procedure tri_shell ( Z: M ) variables h, i, j, ii, jj, k: entier ; sauve: réel; corps h 1 tant que h (4 * n - 9) ÷ 3 faire h 3 * h + 1 ftant répéter pour i de 1 à h faire jj i pour j de i + 1 à n ÷ h faire jj jj + h;k jj - h; sauve Z ij tant que (sauve h) faire Z k + h Z k ; k k - hftant si sauve < Z k alorsZ k + h Z k ; Z k sauve sinonZ k + h sauvefsi fpour h (h - 1) div 3 jusquà h < 1 fproc

13 Tris: comparaisons Bloc tri constanten = … typev = vecteur 1 à 200 dentiers variablesR, S, T: v k: entier corps Lire (T) R T;S T; lineaire(R, n); shell(S, n); quick(T, 1, n); pour k de 1 à n faire écrire(k, R k, S k, T k ) fpour fbloc. 4a_trois_tri_tick (80) ƒ 4b_trois_tri_tick(5000) ƒ

14 Tris: entités bloc test constantemax = 500; typefiche enregistrement numero: entier; denom: vecteur 1..30 de caractères fin v = vecteur 1..max de fiche variables liste: v ;j, k: entiers; corps initialisation(liste); pour k de1 à 20 faire écrire (numero de liste k ); écrire(denom de liste k ) fpour trilin(liste, max); pour k de1 à 20 faire écrire (numero de liste k ); écrire(denom de liste) fpour fin bloc 5_test tri entité ƒ

15 Tris: entités procedure trilin (x: v ; n: entier); variablesj, k: entiers;sauve: fiche; corps pour k de 2 à n faire j k - 1;sauve x k ; tant que (sauve.numero 1) faire x j + 1 x j ; j j - 1 ftant; si sauve.numero < x j.numero alors x j + 1 x j ; x j sauve sinon x j + 1 sauve fsi fpour fproc 5_test tri entité ƒ

16 Tris: stabilité Soit le vecteur 5 2 7 7 6 3 9 Deux des composantes sont égales. Notons les 7a et 7b respectivement. Le vecteur s'écrit: 5 2 7a 7b 6 3 9 Tri est stable 2 3 5 6 7a 7b 9 Tri n'est pas stable 2 3 5 6 7b 7a 9

17 Tris: stabilité JulesDurand AnnemarieDupont PierreDupré AnneDupont AnneDupont AnnemarieDupont JulesDurand PierreDupré AnnemarieDupont AnneDupont PierreDupré JulesDurand Tri sur le prénom Tri instable sur le nom


Télécharger ppt "Algorithmique et programmation Informatique Cours 11 26/11/2001."

Présentations similaires


Annonces Google