Académique Documents
Professionnel Documents
Culture Documents
Exemple : montableau=[5,7,12,14,23,27,35,40,41,45]
Nombre d’itérations :
pour item_Recherché = 35 : ……………………………………………
dans le meilleur des cas (item_Recherché = … ) : ……………………………………………
dans le pire des cas : …………………………………………… ……………………………………
complexité de l’algorithme : ………………………………
On recommence le processus jusqu'au moment où l'on "tombe" sur la valeur recherchée ou que l'on
se retrouve avec un tableau contenant un seul élément : si l'élément unique du tableau n'est pas
l'élément recherché, l’item n’est pas dans le tableau.
trouver ← False
milieu_Zone_Recherche←0
fin_Zone_Recherche ← dernier indice du tableau
debut_Zone_Recherche ← premier indice du tableau
tant que trouver ………………………………. Et 1début_Zone_Recherche………….fin_Zone_Recherche :
milieu_Zone_Recherche ← ………………………………………………………………
si montableau [milieu_Zone_Recherche]………………… :
trouver ←……………….
Sinon :
Si x>montableau[milieu_Zone_Recherche] :
1ébut_Zone_Recherche ←……………………………………………..
sinon :
fin_Zone_Recherche ←………………………………………
finDuSi
finDuSi
finDuTantQue
Principe de l’algorithme pour x= 35 et montableau=[5,7,12,14,23,27,35,40,41,45]
1
Chapitre 6 : algorithmes avancés
1.3 Complexité
Combien doit-on effectuer d'itérations pour un tableau de taille n dans le cas le plus défavorable ?
Sachant qu'à chaque itération de la boucle on divise le tableau comportant n items en 2, cela revient
donc à se demander combien de fois il faut diviser le tableau en 2 pour obtenir, à la fin, un tableau
comportant un seul entier ? Autrement dit, combien de fois faut-il diviser n par 2 pour obtenir 1 ?
Mathématiquement cela se traduit par l'équation :
…………………..
… avec a le nombre de fois qu'il faut diviser n par 2 pour obtenir 1. Il faut donc trouver a !
A ce stade il est nécessaire d'introduire une nouvelle notion mathématique : le "logarithme base 2"
noté log Par définition log (2 ) = 𝑎
Nous pouvons donc dire que la complexité en temps dans le pire des cas de l'algorithme de
recherche dichotomique est 𝐎( 𝐥𝐨𝐠 𝟐 (𝒏))
Application : En considérant un ordinateur capable de réaliser une itération de boucle tous les 0,1 ms
, quelle serait la durée de recherche pour les tableaux suivants (trouver la touche 𝐥𝐨𝐠 𝒃 (𝒏) sur votre
calculatrice).
1.4 Terminaison
Rappel : Un « variant de boucle » est une grandeur/nombre qui varie à chaque itération
« Variant de boucle » de l’algorithme de recherche dichotomique :………………
…………………
1.5 TP : Implémentation
Exercice 1 :
Exercice 2
Implémenter un générateur de très (très) grand tableau d’entiers et trier-le avec la méthode
de votre choix (tri par insertion par exemple).
Effecteur ensuite une recherche simple et une dichotomique sur un item. Comparer les
temps d’exécution et afficher le nombre d’itérations.
Pensez à un nombre (pour éviter la triche écrivez-le sur une feuille retournée …). L’ordinateur
doit deviner ce nombre mystère. A chaque tour, l’ordinateur propose un nombre et l’humain
indique si le nombre mystère est plus petit ou plus grand que le nombre proposé. Si le nombre
mystère est 5 par exemple, une partie pourra se dérouler ainsi :
Devine le nombre !
Ordinateur : 8
Vous : plus petit
4
plus grand
6
plus petit
humain, tu penses au nombre 5
3
Chapitre 6 : algorithmes avancés
2 Algorithmes gloutons
2.1 Le problème du « rendu de monnaie »
Le système monétaire d'un pays comprend uniquement des pièces de 1€, 2€ et 3€. Vous devez
programmez une machine qui doit rendre la monnaie avec ces pièces.
La machine doit rendre le moins de pièces possible pour une somme donnée.
Inconvénients
On souhaite connaitre la solution optimale pour rendre la somme de 6 € avec notre système.
Implémenter un algorithme qui affiche toutes les combinaisons possibles de pièces de de 1€, 2€ et
3€ donnant une somme comprise entre 0 et 6 €.
Si pour une combinaison la somme n’est pas égale à 6 € le programme affiche :
Le programme précédent doit maintenant pour finir afficher la combinaison optimale et le nombre
d’itérations effectuées pour tester toutes les combinaisons.
Exercice 3
Comparer la durée d’exécution pour des petites et des (très) grandes sommes des deux
stratégies.
Déterminer (au moins) 2 cas où la stratégie gloutonne ne donne PAS la solution optimale.
D
A B C
objet Lampe
chandelier Arbre à chats Table de nuit
en fonte
masse 13 Kg 12 Kg 8 Kg 10 Kg
Exercice 5