/* Exemple "technique" sur la recherche dichotomique dans un tableau trié (version récursive). À adapter pour votre TP2 cet été 2014 */ #include using namespace std; void continuer() { cout << endl << endl << "Appuyez sur une lettre suivie de Entree " ; char lettre; cin >> lettre ; cout << endl << endl; } int indDicho(int aChercher, int mini, int maxi, int t[]) { if (mini > maxi) return -1 ; else { int milieu = (mini + maxi) / 2 ; if ( aChercher < t[milieu]) return indDicho(aChercher, mini, milieu-1, t); else if (aChercher > t[milieu]) return indDicho(aChercher, milieu+1, maxi, t); else return milieu; } } int main() { int numero[] = { 15, 23, 29, 45, 61, 80, 125 }, nbPers = sizeof(numero) / sizeof(int); int indice = indDicho(80, 0, nbPers-1, numero); if (indice == -1) cout << "Introuvable\n" ; else cout << "On trouve 80 a l'indice : " << indice << endl ; indice = indDicho(50, 0, nbPers-1, numero); if (indice == -1) cout << "50 => introuvable\n"; else cout << "On trouve 50 a l'indice : " << indice << endl ; continuer(); return 0; } /* Execution: On trouve 80 a l'indice : 5 50 => introuvable Appuyez sur une lettre suivie de Entree f */