Algorithmique et programmation Informatique Cours 10 19/11/2001
Les tables Gestion Recherche Séquentielle sûr - pas sûr Insertion - suppression Tassement Pas triée Triée Recherche Dichotomique
Table avec cases « vides » indicevaleurs Exemple: Implémentation sous forme dun vecteur T dentiers Les cases « vides » contiennent une valeur conventionnelle ()
Tables: recherche Bloc recherche_sur ConstantesN = … TypeM: table 1..N dentier VariablesT: M; X, k: entier Corps Lire ( T ) ; lire (X) recherche ( T, X, k ) écrire ( valeur trouvée en, k ) fbloc
Tables: recherche Procedure recherche ( T: M ; X: entier ; pos: entier ) Variablek: entier Corps k 1 Tant que T k X faire k k + 1 ftant pos k fbloc 1_recherches_sur ƒ
Tables: recherche Procedure recherche ( T: M ; X: entier ; position: entier ) Variablek: entier Corps position -1 k 1 Tant que T k X et k < n faire k k + 1 Ftant Si T k X alors position k fsi fbloc 2_recherches_pas_sur ƒ
Tables: insertion Bloc insere ConstantesN = … ; vide = TypeM: table 1..N dentier VariablesT: M; X: entier OK: booléen Corps Lire ( T ) ; lire (X) Insertion ( T, X, OK ) …. Si OK alors écrire ( insertion réussie ) Sinon écrire ( insertion impossible ) fsi Ecrire ( T ) fbloc
Tables: insertion Procédure insertion ( Z: M ; X: entier ; Y: booléen ) Variablesk: entier Corps Y faux ; k 1 Tant que Z k <> vide et k<N faire k k + 1 ftant Si Z k = vide alors Z k X Y vrai fsi fproc 3_insertion ƒ
Tables: tassements Procédure tasse_nt ( T: M ) Variablesj, k: entier Corps j 1 ; k n tant que j<k faire tant que T k <> vide et j<k faire j j + 1 ftant tant que T k = vide et j<k faire k k - 1 ftant T k T j j j + 1 k k - 1 ftant fproc 5_tassement_pas_trie ƒ
Tables: tassements Procédure tasse_t ( T: M ) Variablesj, k: entier Corps k 1 pour j de 1 à N faire si T j <> vide alors T k T j k k + 1 fsi fpour pour j de k à N faire T j vide fproc 6_tassement_trie ƒ
Tables: recherche dichotomique Procédure cherche_t ( T: M ; X: entier ; milieu: entier ; trouve: booleen ) Variablesj, k, milieu: entier Corps trouve faux ; j 1 ; k N Tant que j<>k faire milieu ( j + k ) ÷ 2 si T milieu < X alors j milieu + 1 sinon si T milieu > X alors k milieu - 1 sinon j k + 1 fsi ftant Si T milieu = X alorstrouve vraifsi fproc 7_dichotomique ƒ
Tables: recherche dichotomique Nombre ditérations nécessaires: Au plus égal au nombre de fois que lon peut diviser le vecteur à N composantes en 2 parties soit Log 2 N
Recherches: comparaison Nombre de comparaisons en moyenne N =2kk2kk SéquentielleDichotomique