[PDF] Algo Prog Objet Python Pour supprimer l'ambiguïté





Previous PDF Next PDF



Recherche dichotomique dans un tableau dentiers Recherche dichotomique dans un tableau dentiers

LANGAGE C - EXEMPLES DE PROGRAMMES. Maude Manouvrier. La reproduction de ce document par tout moyen que ce soit est interdite conformément aux articles L111-1 



Recherche séquentielle dans un tableau [re03] Exercice

C - Recherche dans un tableau (Solution). Mots-Clés Recherches □. Requis Dans le même ordre d'idées l'exercice @[Recherche dichotomique dans un tableau] ...



Algorithmique Trier et Trouver

⇒ Complexité : O(log2(taille)) ∩ Ω(1). Page 10. Recherche dans un tableau dichotomie. 9 de 47. Autre application 



Recherche dichotomique

1 consacre une partie importante du chapitre 9 à cet algorithme et à son étude. 2. Présentation de l'algorithme. 2.1. Approche naïve. Une première façon de 



Plan Langage C • Typedef • Initiation aux pointeurs Algorithmique

• recherche : O(log n). (en cas de succès et d'échec ). C'est la recherche "dichotomique". Page 15. X Petite classe 5. X



PLAN DU COURS ALGORITHME DE RECHERCHE

12 mars 2013 RECHERCHE DICHOTOMIQUE. Algorithme recherche_dichotomique. {Recherche le ... • Introduction au langage C. • Notions de compilation. • Variables ...



Algorithmes de recherche et de tri

L'algorithme de recherche par interpolation est le même que celui de recherche dichotomique c] avec a<b<=c. // les elements de ces parties sont tries en ordre ...



Algorithmique - Correction du TD3

18 déc. 2012 Exercice 17 (*). Ecrire un algorithme de recherche dichotomique permettant de résoudre le problème suivant : – Données : un tableau tableau ...



Algorithmes de recherche [re] Algorithmique

4 Recherche dichotomique. 4.1 Principe de la recherche dichotomique. La C'est le principe de la recherche dans un dictionnaire : pour rechercher le mot ...



Recherche dichotomique dans un tableau dentiers

13 sept. 2000 LANGAGE C - EXEMPLES DE PROGRAMMES. Maude Manouvrier. La reproduction de ce document par tout moyen que ce soit est interdite conformément ...



Algorithmique Trier et Trouver

Recherche dans un tableau dichotomie. 9 de 47. Autre application de la recherche dichotomique. Jeu du nombre inconnu où l'on répond soit «plus grand» soit.



Recherche dichotomique

1 consacre une partie importante du chapitre 9 à cet algorithme et à son étude. 2. Présentation de l'algorithme. 2.1. Approche naïve. Une première façon de 



Recherche séquentielle dans un tableau [re03] Exercice

C - Recherche dans un tableau (Solution). Mots-Clés Recherches ? même ordre d'idées l'exercice @[Recherche dichotomique dans un tableau] construit un.



Algorithmique & programmation en langage C - vol.1 - Archive

1 févr. 2019 d'algorithmique et de programmation en langage C donnés à la Faculté d'ingénierie de ... exemple : recherche dichotomique récursive.



Chapitre 3 - Recherche dans un tableau

Algorithme 3.1 Algorithme de recherche séquentielle laborieuse. Entrée : t un tableau a et b deux indices



PLAN DU COURS ALGORITHME DE RECHERCHE

12 mars 2013 Introduction au langage C. • Notions de compilation. • Variables types





Algo Prog Objet Python

Recherche dichotomique. • Peut-on faire mieux ? • Oui si le tableau est préalablement trié. C'est la recherche dichotomique.



1 Recherche linéaire

11 mars 2020 Recherches linéaire et dichotomique ... 1) Programmez la classe générique Élément<CV> (donnée ci-dessous) munie des deux.



Searches related to recherche dichotomique langage c PDF

RECHERCHE DICHOTOMIQUE DANS UN TABLEAU D'ENTIERS #include /* Programm int main() e de recherche dichotomique d'un élément dans une liste d'entiers */ { /* DECLARATION DES VARIABLES */ int iTableau[]={1235689}; /* Tableau TRIE d’entiers */ int iRecherche; /* Elément recherché */

Qu'est-ce que la recherché dichotomique ?

La recherche dichotomique (ou recherche par dichotomie) consiste à trouver un élément dans une séquence triée en divisant l'intervalle de recherche de moitié à chaque itération. La recherche par dichotomie permet de trouver l'élément recherché plus rapidement à condition que l'ensemble soit préalablement trié.

Comment calculer la complexité de la recherche dichotomique ?

Pour avoir N /2 k = 1 il faut k = log 2 N ; par conséquent, le nombre d'opérations de la recherche dichotomique est de l'ordre de log 2 N. Cette complexité est à comparer avec celle de la recherche séquentielle (exercice 3), dont nous avons vu qu'elle était de N / 2 en moyenne.

Quelle est la complexité de l'algorithme de recherche dichotomique ?

Voici une implémentation de l'algorithme de recherche dichotomique en utilisant une définition récursive. Cet algorithme est de complexité logarithmique. Pour des tableaux de grandes tailles, cela représente une différence énorme.

Quelle est la propriété de l’algorithme de recherche dichotomique?

Propriété4 18 Dans l’algorithme de recherche dichotomique, après division en deux de la zone de recherche, l’algorithmes’appellelui-mêmesurl’unedesdeuxmoitiés. C’estunalgorithmedetypeDiviser pour régnerquipeutseprogrammerrécursivementcommenousleverronsenterminaledanslechapitre surlarécursivité.

Algo Prog Objet Python Andrea G. B. Tettamanzi, 20171AlgorithmiqueAlgorithmique Programmation ObjetProgrammation ObjetPythonPython

Andrea G. B. Tettamanzi

Université de Nice Sophia Antipolis

Département Informatique

andrea.tettamanzi@unice.fr

Andrea G. B. Tettamanzi, 20172CM - Séance 6

Tableaux et matrices,

recherche dichotomique

Andrea G. B. Tettamanzi, 20173Plan

•Tableaux •Matrices •Recherche dichotomique

Andrea G. B. Tettamanzi, 20174Tableaux

•Un tableau (array en anglais) est une structure de données de base qui est un ensemble d'éléments, auquel on accède à travers un numéro d'index. •Le temps d'accès à un élément par son indice est constant, quel que soit l'élément désiré •Les éléments d'un tableau sont contigus dans l'espace mémoire. Avec l'index, on sait donc à combien de cases mémoire se trouve l'élément en partant du début du tableau. •On désigne habituellement les tableaux par des lettres majuscules. SI T est un tableau alors T[i] représente l'élément à l'index i.

Andrea G. B. Tettamanzi, 20175Tableaux

•Avantages : accès direct au ième élément •Inconvénients : les opérations d'insertion et de suppression sont impossibles •sauf si on crée un nouveau tableau, de taille plus grande ou plus petite (selon l'opération). Il est alors nécessaire de copier tous les éléments du tableau original dans le nouveau tableau. Cela fait donc beaucoup d'opérations.

Andrea G. B. Tettamanzi, 20176Tableaux

•Un tableau peut avoir une dimension, on parle alors de vecteur •Un tableau peut avoir plusieurs dimensions, on dit qu'il est multidimensionnel. On le note T[i][k] •La taille d'un tableau doit être définie avant son utilisation et ne peut plus être changée. •Les seules opérations possibles sont set et get (on affecte un élément à un index et on lit un élément à un index). •On peut linéariser un tableau à plusieurs dimensions : -Étant donné un tableau bidimensionnel T, n l m, -Un peut construire un tableau linéaire L de taille nm, tel que

L[im + j] = T[i][j].

Andrea G. B. Tettamanzi, 20177Tableaux multidimensionnels 01234
56789

1011121314

1516171819i\ j

0 1 2

30 1 2 3 4

T[i][j]=L[i *5 +j]

T[1][3]=L[1*5+3]=L[8]

T[i][j]=[i * #col + j]

Andrea G. B. Tettamanzi, 20178Tableaux de tableaux •On peut définir un tableau de tableaux (ou de n'importe quoi en fait)

0123456

0123

012345

012T[0]

T[1] T[2] T[3] Andrea G. B. Tettamanzi, 20179Élément ou index ? •Il ne faut pas confondre un élément du tableau et l'index de cet

élément

Andrea G. B. Tettamanzi, 201710Algorithmes de Tri

•Une tâche assez fréquente étant donné un tableau •Permuter ses éléments de façon qu'ils respectent un ordre •En fait, on peut trier n'importe quelle structure linéaire •Un algorithme de tri simple mais pas trop performant est le tri par insertion •On verra des autres algorithmes plus performants dans une des prochaines séances

Andrea G. B. Tettamanzi, 201711Tri par insertion

•D F A G B H E C •On fait 2 paquets : 1 non trié - 1 trié •Un paquet d'un élément est trié •On prend un élément non trié et on le range à sa place dans le paquet trié •On prend D : D - F A G B H E C •On prend F : D F - A G B H E C •On prend A : A D F - G B H E C •On prend G : A D F G - B H E C •On prend B : A B D F G - H E C

Andrea G. B. Tettamanzi, 201712Tri par insertion

•Comment ranger dans le paquet trié ? •On doit ranger B dans A D F G - B H E C •On a A D F G B •On parcourt de droite à gauche A D F G •Tant que la valeur est > B, on l'échange avec B •A D F B G •A D B F G •A B D F G •Fin

Andrea G. B. Tettamanzi, 201713Tri par insertion

•On pourrait dire : -On fait 2 tas : un trié, puis un non trié. -Au début le tas trié est vide, celui non trié contient tous les

éléments

-On prend un élément non trié et on le range à sa place dans le tas trié •Cet algorithme est exact, mais -sa formulation est ambiguë, par exemple " prendre » veut dire le supprimer du tas non trié aussi. -Il n'est pas assez précis : comment range-t-on un élément, qu'est-ce que sa place ? -Pour supprimer l'ambiguïté on va utiliser un pseudo langage Andrea G. B. Tettamanzi, 201714Tri par insertion : algorithme triInsertion(entier[] t) pour i de 2 à n # n est la taille de t entier c ← t[i] entier k ← i-1 # c doit être inséré dans le tableau ordonné t[1..i-1] # on cherche de droite à gauche la première valeur t[k] # plus petite que c tant que k≥1 et t[k]>c t[k+1] ← t[k] # on décale k ← k-1 # on a trouvé la bonne place t[k+1] ← c Andrea G. B. Tettamanzi, 201715Tri par insertion : analyse empirique •Francis Avnaim a fait l'étude suivante de la complexité expérimentale de cet algorithme, implémenté en Processing •On trie des tableaux de taille croissante de 500 à 10000 par pas de 10 -Aléatoires -Triés en ordre inverse -Déjà triés

Andrea G. B. Tettamanzi, 201716Aléatoire

Andrea G. B. Tettamanzi, 201717En ordre inverse

Andrea G. B. Tettamanzi, 201718Déjà trié

Andrea G. B. Tettamanzi, 201719Tri par insertion : analyse empirique •Conclusions de l'expérimentation -Tableaux aléatoires et en ordre inverse : O(n2 -Tableaux ordonnés : O(n) ? •Pour avoir une réponse fiable, il faut analyser l'algorithme... Andrea G. B. Tettamanzi, 201720Tri par insertion : analyse •Parties bleues : -7 op. él. n-1 fois soit 7(n-1) •Partie jaune : 6 op. él. •Partie mauve : 4 op. él. •Combien de fois ? •Nombre de fois ou les parties mauves et jaunes sont appelées ? •Complexité mauve + jaune : •Complexité totale inférieure Andrea G. B. Tettamanzi, 201721Tri par insertion : analyse •Nombre de fois ou les parties mauves et jaunes sont appelées : •au pire i fois (k de i-1 à 1), donc -Partie jaune : 6i à chaque fois -Partie mauve : 4i à chaque fois •Complexité mauve + jaune: -10i à chaque fois Andrea G. B. Tettamanzi, 201722Tri par insertion : analyse •Complexité mauve + jaune : -10i à chaque fois •Partie bleue : 7(n - 1) (pire cas) Si tableau déjà trié, partie jaune jamais exécutée : 11(n - 1) (meilleur cas) Andrea G. B. Tettamanzi, 201723Diviser pour régner : calcul de xn •Méthode simple, par itérations : -Y ← 1 -pour i de 1 à n : y ← y * x •Complexité : O(n) -x8 ? -Combien d'opérations ? -x16 ? -x12 ? •Généralisation : -si n est pair -si n est impair Andrea G. B. Tettamanzi, 201724Diviser pour régner : calcul de xn •Algorithme plus performant, récursif : PUISSANCE(↓x, entier ↓n, ↑resultat) si n = 1 resultat ← x sinon

PUISSANCE(x, n/2, p)

si n pair resultat ← p*p sinon resultat ← p*p*x Nombre de multiplications : log n + [nombre de bits à 1 dans n] - 1

Complexité : O(log n)

Andrea G. B. Tettamanzi, 201725Recherche dans un tableau •Considérons un tableau T de nombres entiers, de taille n •On désire savoir si un nombre donné x est dans le tableau •Pour le savoir, on parcourt le tableau en comparant les éléments de T à x (recherche séquentielle) •Au plus (quand x n'est pas dans T), on fera n comparaisons •L'algorithme est donc de complexité O(n) Andrea G. B. Tettamanzi, 201726Recherche dichotomique •Peut-on faire mieux ? •Oui, si le tableau est préalablement trié. C'est la recherche dichotomique •Idée : on compare x à la valeur centrale m de T. •Si x = m, on a trouvé x dans T. •Sinon, si x < m, on cherche x dans la moitié inférieure du tableau, sinon on cherche x dans la moitié supérieure Andrea G. B. Tettamanzi, 201727Recherche dichotomique : algorithme Andrea G. B. Tettamanzi, 201728Recherche dichotomique : analyse •Appelons C(n) le nombre d'opérations élémentaires exécutées pour effectuer la recherche dichotomique dans un tableau de taille n •On a, avec k1 et k2 deux constantes majorant respectivement le nombre d'opérations des parties en bleu et en mauve : Andrea G. B. Tettamanzi, 201729Recherche dichotomique : analyse On obtient ce qu'on appelle "équation de récurrence" : Il existe une méthode générale pour résoudre ce genre d'équation, basée sur les fonctions génératrices. Cependant, cette méthode est assez compliquée et nous n'avons pas le temps de la couvrir. Dans ce cas particulier, il est facile de deviner la solution : Andrea G. B. Tettamanzi, 201730Recherche dichotomique : version itérative entier rechercheDichotomique(entier T[1..n], entier x) min ← 1 ; max ← n m ← (min + max)/2 min ← m + 1 si T[p] ≥ x max ← m - 1 si T[m] = x renvoyer m sinon renvoyer -1 # élément non trouvé Andrea G. B. Tettamanzi, 201731Merci de votre attentionquotesdbs_dbs31.pdfusesText_37
[PDF] recherche dichotomique recursive langage c

[PDF] exemple de manuel de procedure informatique

[PDF] organisation d une dsi type

[PDF] manuel de procédures informatiques

[PDF] cyberlux 8

[PDF] organisation dun service informatique dans une entreprise

[PDF] cyberlux 8 crack

[PDF] exemple dossier exploitation informatique

[PDF] cyberlux 8 full

[PDF] bibliographie de max weber

[PDF] max weber pdf

[PDF] max weber économie et société tome 2 pdf

[PDF] max weber le savant et le politique pdf

[PDF] max weber économie et société fiche de lecture

[PDF] max weber économie et société tome 1 résumé