Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

Point fixe par dichotomie

python ★★★☆☆

On considère un tableau trié d'entiers distincts tab. Un point fixe est un indice i tel que tab[i] == i.

Écrire une fonction point_fixe(tab) qui renvoie un indice de point fixe s'il en existe un, ou -1 sinon. La fonction doit utiliser la recherche dichotomique pour atteindre une complexité en O(log n).

Le principe est le suivant : puisque le tableau est trié et contient des entiers distincts, la fonction f(i) = tab[i] - i est croissante. On peut donc appliquer une dichotomie : - Si tab[milieu] == milieu, on a trouvé un point fixe. - Si tab[milieu] < milieu, le point fixe (s'il existe) est a droite. - Si tab[milieu] > milieu, le point fixe (s'il existe) est a gauche.

Exemples

AppelRésultat attendu
point_fixe([-1, 0, 1, 3, 7]) 3
point_fixe([1, 2, 3, 4]) -1

Votre code

Connectez-vous pour soumettre du code.