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

Structures de données IFT-10541 Abder Alikacem Semaine 7 Les algorithmes de recherche Département dinformatique et de génie logiciel Édition septembre.

Présentations similaires


Présentation au sujet: "Structures de données IFT-10541 Abder Alikacem Semaine 7 Les algorithmes de recherche Département dinformatique et de génie logiciel Édition septembre."— Transcription de la présentation:

1 Structures de données IFT Abder Alikacem Semaine 7 Les algorithmes de recherche Département dinformatique et de génie logiciel Édition septembre 2009

2 Plan Les algorithmes de recherche La recherche séquentielle La recherche dichotomique Complexité des algorithmes de recherche Recherche dichotomique et arborescence

3 La recherche séquentielle recherche(3)= recherche(10)= recherche(12)= recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données pas triées

4 La recherche séquentielle recherche(3)=1 comparaison recherche(10)= recherche(12)= recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données pas triées

5 La recherche séquentielle recherche(3)=1 comparaison recherche(10)=11 comparaisons recherche(12)= recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données pas triées

6 La recherche séquentielle recherche(3)=1 comparaison recherche(10)=11 comparaisons recherche(12)=7 comparaisons recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données pas triées

7 La recherche séquentielle recherche(3)=1 comparaison recherche(10)=11 comparaisons recherche(12)=7 comparaisons recherche(13)=11 comparaisons meilleur cas= pire cas= en moyenne= absences= Données pas triées

8 La recherche séquentielle recherche(3)=1 comparaison recherche(10)=11 comparaisons recherche(12)=7 comparaisons recherche(13) =11 comparaisons meilleur cas=O(1) pire cas= en moyenne= absences= Données pas triées

9 La recherche séquentielle recherche(3)=1 comparaison recherche(10)=11 comparaisons recherche(12)=7 comparaisons recherche(13)=11 comparaisons meilleur cas=O(1) pire cas=O(n) en moyenne= absences= Données pas triées

10 La recherche séquentielle recherche(3)=1 comparaison recherche(10)=11 comparaisons recherche(12)=7 comparaisons recherche(13)=11 comparaisons meilleur cas=O(1) pire cas=O(n) en moyenne= O(n/2) absences= Données pas triées

11 La recherche séquentielle recherche(3)=1 comparaison recherche(10)=11 comparaisons recherche(12)=7 comparaisons recherche(13)=11 comparaisons meilleur cas=O(1) pire cas=O(n) en moyenne= O(n/2) absences=O(n) Données pas triées

12 La recherche séquentielle recherche(1)= recherche(14)= recherche(8)= recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données triées

13 La recherche séquentielle recherche(1)=1 comparaison recherche(14)= recherche(8)= recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données triées

14 La recherche séquentielle recherche(1)=1 comparaison recherche(14)=11 comparaisons recherche(8)= recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données triées

15 La recherche séquentielle recherche(1)=1 comparaison recherche(14)=11 comparaisons recherche(8)=6 comparaisons recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données triées

16 La recherche séquentielle recherche(1)=1 comparaison recherche(14)=11 comparaisons recherche(8)=6 comparaisons recherche(13)=11 comparaisons meilleur cas= pire cas= en moyenne= absences= Données triées

17 La recherche séquentielle recherche(1)=1 comparaison recherche(14)=11 comparaisons recherche(8)=6 comparaisons recherche(13)=11 comparaisons meilleur cas=O(1) pire cas= en moyenne= absences= Données triées

18 La recherche séquentielle recherche(1)=1 comparaison recherche(14)=11 comparaisons recherche(8)=6 comparaisons recherche(13)=11 comparaisons meilleur cas=O(1) pire cas=O(n) en moyenne= absences= Données triées

19 La recherche séquentielle recherche(1)=1 comparaison recherche(14)=11 comparaisons recherche(8)=6 comparaisons recherche(13)=11 comparaisons meilleur cas=O(1) pire cas=O(n) en moyenne= O(n/2) absences= Données triées

20 La recherche séquentielle recherche(1)=1 comparaison recherche(14)=11 comparaisons recherche(8)=6 comparaisons recherche(13)=11 comparaisons meilleur cas=O(1) pire cas=O(n) en moyenne= O(n/2) absences=O(n/2) Données triées

21 La recherche séquentielle données non triées : données présentes : O(n/2) données absentes : O(n) données triées : données présentes : O(n/2) données absentes : O(n/2) coût pour trier et maintenir triées !

22 Modèles dimplantation tableau : liste chaînée :

23 La recherche binaire implantation en tableau = accès direct à nimporte quel élément en regardant tout de suite au milieu, on peut éliminer la moitié des données

24 La recherche binaire

25 La recherche binaire

26 La recherche binaire

27 La recherche binaire

28 La recherche binaire : 10 ?

29 La recherche binaire : 10 ?

30 La recherche binaire : 10 ?

31 La recherche binaire : 10 ?

32 La recherche binaire : 10 ?

33 La recherche binaire : 10 ?

34 La recherche binaire : 10 ?

35 La recherche binaire : 10 ?

36 La recherche binaire : 10 ?

37 La recherche binaire : 10 ?

38 La recherche binaire : 10 ?

39 La recherche binaire : 9.5 ?

40 La recherche binaire : 9.5 ?

41 La recherche binaire : 9.5 ? n n/2 n/4 n/8

42 Algorithme récursif récursion ? conditions darrêt ? convergence ?

43 Récursion x tab[debut..fin] si x = tab[milieu] (condition darrêt) si x < tab[milieu] et x tab[debut..milieu-1] si x > tab[milieu] et x tab[milieu+1..fin]

44 Conditions darrêt x tab[debut..fin] si debut > fin x tab[debut..fin] si x = tab[milieu]

45 Convergence

46 Template int rechercheBinRec(T * tab, T val, int debut, int fin) {int milieu; /*A: tab est correctement initialisé*/ if (debut > fin) return -1; else { milieu= (debut + fin)/2; if( val == tab[milieu]) return milieu; else { if( val < tab[milieu]) return(rechercheBinRec(tab,val,debut, milieu-1)); else return(rechercheBinRec(tab,val,milieu+1,fin)); }

47 Il vaut bien mieux implanter cet algorithme de manière itérative, car la fonction se rappelle jusqu'à trouver la position désirée, puis seulement on effectue les dépilages, alors que l'on n'a plus besoin des états intermédiaires qui ont été mémorisés par la récursivité puisque le problème est résolu. Remarque sur les algorithmes récursifs

48 Tableau comparatif recherche séquentielle : (données triées) données présentes : O(n/2) données absentes : O(n/2) recherche binaire : (données triées) données présentes : O(log n) données absentes : O(log n)

49 Modèles dimplantation tableau : liste chaînée ?

50 Structures pointées

51 Structures pointées

52 Structures pointées

53 Structures pointées

54 Structures pointées

55 Structures pointées

56 Structures pointées

57 Structures pointées

58 Structures pointées

59 Structures pointées

60 Structures pointées

61 Structures pointées

62 Structures pointées

63 Arbre binaire !

64 Arbre binaire !

65 Arbre binaire racine sous-arbre de gauchesous-arbre de droite nœuds internes feuilles

66 Arbre = graphe

67 Arbre = graphe

68 Arbre = graphe

69 Arbre = graphe graphe connexe, orienté, acyclique 1 seul nœud source = racine nœuds puits = feuilles ordre d entrée de tout nœud = 1, sauf racine un chemin de la racine à tout autre nœud

70 Arbre = index

71 Arbre = index

72 Index sur sommet dun graphe

73 Index sur sommet dun graphe


Télécharger ppt "Structures de données IFT-10541 Abder Alikacem Semaine 7 Les algorithmes de recherche Département dinformatique et de génie logiciel Édition septembre."

Présentations similaires


Annonces Google