ISN Nice TP algorithmes 2014-2015
1
Objectifs :
Etudier plusieurs algorithmes classiques
Implémenter certains de ces algorithmes avec un langage de programmation
Avoir des notions sur la complexité des algorithmes
Logiciel utilisé : JavaScool
Consignes : On nommera chacun des programmes demandés selon la nomenclature suivante :
TP_{MALHERBE}_Algo_II_b : programme de la question II b) pour l’élève MALHERBE .
I Recherche par dichotomie
1) Décrire le principe d’un algorithme de recherche par dichotomie.
2) La proglet JavaScool « Dichotomie » permet de faire une recherche du drapeau d’un pays à
partir de son nom.
Se documenter sur cette proglet.
Utiliser les fonctions
length()
et
compare(pays, index)
pour :
a) Ecrire une fonction qui effectue la recherche d’un pays donné par une méthode de
balayage et retourne le nombre de pages feuilletées du livre.
int recherche_par_balayage(String pays)
b) Ecrire une fonction qui effectue la recherche d’un pays donné par une méthode de
dichotomie et retourne le nombre de pages feuilletées du livre.
int recherche_par_dichotomie(String pays)
3) Notion de complexité :
a) Combien d’étapes maximum le programme par balayage effectue-t-il ?
b) Même question pour le programme par dichotomie.
c) Si la taille de l’échantillon à analyser est N, quel est le nombre maximum d’étapes pour
l’algorithme de balayage et pour celui de dichotomie.
d) Pour aller plus loin : (question bonus)
Ecrire un programme qui détermine le nombre moyen d’étapes pour rechercher un
entier compris entre 1 et N avec les deux méthodes (balayage et dichotomie).
Tester ce programme pour N = 10, 100, 1000, 10 000 et 100 000.
Représenter les résultats avec un tableur sous la forme d’un nuage de points avec en
abscisse une échelle logarithmique pour N.
(On sauvegardera le fichier du tableur.)