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-10541 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 314281412116910 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 314281412116910 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 314281412116910 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 314281412116910 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 314281412116910 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 314281412116910 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 314281412116910 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 314281412116910 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 314281412116910 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 123468910111214 recherche(1)= recherche(14)= recherche(8)= recherche(13)= meilleur cas= pire cas= en moyenne= absences= Données triées

13 La recherche séquentielle 123468910111214 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 123468910111214 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 123468910111214 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 123468910111214 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 123468910111214 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 123468910111214 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 123468910111214 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 123468910111214 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 : 123468910111214 123468910111214

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 123468910111214

24 La recherche binaire 123468910111214 100

25 La recherche binaire 123468910111214 1005

26 La recherche binaire 123468910111214 1005

27 La recherche binaire 123468910111214 1005

28 La recherche binaire : 10 ? 123468910111214 1005

29 La recherche binaire : 10 ? 123468910111214 1005

30 La recherche binaire : 10 ? 123468910111214 123468910111214 1005 6

31 La recherche binaire : 10 ? 123468910111214 123468910111214 1005 6 8

32 La recherche binaire : 10 ? 123468910111214 123468910111214 1005 6 8

33 La recherche binaire : 10 ? 123468910111214 123468910111214 1005 6 8

34 La recherche binaire : 10 ? 123468910111214 123468910111214 123468910111214 1005 6 8 67

35 La recherche binaire : 10 ? 123468910111214 123468910111214 123468910111214 1005 6 8 67

36 La recherche binaire : 10 ? 123468910111214 123468910111214 123468910111214 1005 6 8 67

37 La recherche binaire : 10 ? 123468910111214 123468910111214 123468910111214 1005 6 8 67 1234689 111214 7

38 La recherche binaire : 10 ? 123468910111214 123468910111214 123468910111214 1005 6 8 67 1234689 111214 7

39 La recherche binaire : 9.5 ? 123468910111214 123468910111214 123468910111214 1005 6 8 67 1234689 111214 7

40 La recherche binaire : 9.5 ? 123468910111214 123468910111214 123468910111214 1005 6 8 67 1234689 111214 7 11 5 2 1

41 La recherche binaire : 9.5 ? 123468910111214 123468910111214 123468910111214 1005 6 8 67 1234689 111214 7 11 5 2 1 n n/2 n/4 n/8

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

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] 123468910111214 1005

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

45 Convergence 123468910111214 123468910111214 123468910111214 1005 6 8 67 1234689 111214 7

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 ? 123468910111214 123468910111214 100

50 Structures pointées 123468910111214 012345678910

51 Structures pointées 123468910111214 012345678910

52 Structures pointées 123468910111214 012345678910

53 Structures pointées 12346 8 910111214 01234678910

54 Structures pointées 12346 8 910111214 01234678910

55 Structures pointées 12346 8 910111214 01234678910

56 Structures pointées 12 3 46 8 910 11 1214 013467910

57 Structures pointées 12 3 46 8 910 11 1214 013467910

58 Structures pointées 12 3 46 8 910 11 1214 013467910

59 Structures pointées 1 2 3 4 6 8 9 10 11 12 14

60 Structures pointées 1 2 3 4 6 8 9 10 11 12 14

61 Structures pointées 1 2 3 4 6 8 9 10 11 12 14

62 Structures pointées 1 2 3 4 6 8 9 10 11 12 14

63 Arbre binaire ! 1 2 3 4 6 8 9 10 11 12 14

64 Arbre binaire ! 1 2 3 4 6 8 9 10 11 12 14

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

66 Arbre = graphe 1 2 3 4 6 8 9 10 11 12 14

67 Arbre = graphe 1 2 3 4 6 8 9 10 11 12 14

68 Arbre = graphe 1 2 3 4 6 8 9 10 11 12 14

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 1 2 3 4 6 8 9 10 11 12 14

71 Arbre = index 1 2 3 4 6 8 9 10 11 12 14

72 Index sur sommet dun graphe 4 2 5 3 1 1 2 3 4 5 1 2 3 4 5 1 11 11 1...

73 Index sur sommet dun graphe 4 2 5 3 1 1 2 3 4 5 1 2 3 4 5 1 11 11 1... 3 5 4 2 1


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