Promo 2013
Antoine GAGNEUX Algorithmique et Java
Tableau : Dichotomie
Sachant que le tableau est trié et connaissant la valeur de la case du milieu du tableau, il
est possible de savoir si l’élément recherché se trouve dans la sous partie gauche ou
droite du tableau.
Exemple : on recherche l’élément 23 dans le tableau de 19 cases suivant
1 3 8 17 18 23 26 29 31 32 38 45 47 55 59 62 78 82 90
23 est plus petit que 32 donc se trouve dans la partie gauche du tableau c’est à dire
entre les cases 1 et 10.
Ensuite, recommençons dans la sous partie gauche.
Exemple : est ce que 23 est plus petit ou plus grand que 18, c’est à dire à gauche ou à
droite de la 5
ème
case ?
1 3 8 17 18 23 26 29 31
Ensuite, recommençons jusqu'à tomber sur le numéro cherché.
Le principe de dichotomie est donc le suivant
Choisir un intervalle (Au départ tout le tableau)
Prendre son milieu
Comparer l’objet cherché avec la valeur du milieu
Modifier (restreindre) l’intervalle en fonction de la comparaison (A gauche ou à droite)
Recommencer l’opération jusqu'à l’arrêt (trouvé ou non trouvé)
Ecrire une méthode qui recherche un élément e dans un tableau par dichotomie
Tableaux, Exercice : Hidden and dangerous, Recherche et suppression
- Définir un tableau d’entiers de taille 100.
- Ecrire une méthode qui initialise le tableau avec des entiers quelconques compris entre 1 et
100.
Le tableau d’entier représente la jungle hostile dans laquelle vous devez débusquer des
ennemis pour les détruire. La destruction se fait avec décalage.
Pour savoir si un élément est un ennemi vous connaissez un test infaillible : s’il est impair et
ses deux voisins pairs alors c’est un ennemi.
Tactique 1 : On ratisse large
Attention : ne codez pas cette tactique
On parcourt la jungle, dès qu’on trouve un ennemi on s’arrête et on l’élimine.
On recommence alors au début du tableau
Lorsqu’on atteint enfin la fin du tableau, il n’y a plus d’ennemi.
Quel est le problème de cette tactique ?
Tactique 2 : Avec la technologie moderne
Etape 1 : L’aviation parcourt la jungle et compte le nombre d’ennemis présents.
Etape 2 : Vous supprimez les ennemis en vous aidant de l’information de l’aviation.
Codez cet algorithme.
Tactique 3 : « Roger, quartier général »
Vous êtes au quartier général et vous supervisez les informations de l’aviation et de
l’infanterie.
Etape 1 : Vous demandez à l’aviation la place de l’ennemi le plus proche à partir de la
position i.
Etape 2 : Vous envoyez l’infanterie détruire l’ennemi en connaissant sa position.
Etape 3 : Vous recommencez l’étape 1 à partir de la nouvelle position.
Codez cet algorithme.