TD No 3 from http://vernier.frederic.free.fr/Teaching/PimpA
Recherche par dichotomie et par interpolation
Questions sans code à écrire
Décrivez le principe général de la recherche par dichotomie.
Ecrivez l'algorithme de recherche par dichotomie en récursif et en itératif !
Ecrivez un algorithme hybride entre la recherche par dichotomie et la recherche par interpolation
si la valeur recherchée est > 2*(val_min+val_max)/3 prendre comme pivot 2*(index_min+index_max)/3
si la valeur recherchée est < 1*(val_min+val_max)/3 prendre comme pivot 1*(index_min+index_max)/3
sinon prendre le pivot par défaut (index_min+index_max)/2
Dans quel(s) cas est-ce que cet algorithme pourrait-être plus efficace ?
De nombreuses recherches par dichotomie sont-elles efficaces si il faut re-trier la liste avant chaque recherche ?
Implémentations
Codez le trie des communes par leur nom avec la méthode du trie rapide
Testez ! Pourquoi l'ordre change par rapport à la liste de départ ?
Codez une fonction de recherche par dichotomie des communes par leur nom
Testez, testez et re-testez!
Comptez le nombre d'essais et afficher le pour chaque recherche
Implémentez la recherche par interpolation sur la distance à Paris (avec une nouvelle fonction de trie !)
qui retourne combien de communes il y a dans un cercle de rayon r
Rajoutez le code nécessaire pour retournez le nombre de français vivant dans ce rayon.
Est-ce possible sans rentrer dans un algorithe en O(n) à chaque nouvelle recherche autour d'une ville ?