Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

Recherche dichotomique dans un tableau trié

ocaml ★★☆☆☆

Écrire une fonction recherche : int array -> int -> int qui prend un tableau t trié par ordre croissant et un entier x, et renvoie un indice i tel que t.(i) = x s'il existe, ou -1 sinon.

On attend une complexité en O(log n) (recherche dichotomique).

Comme on ne peut pas couper un tableau OCaml en deux moitiés sans le copier, on pourra définir une fonction auxiliaire :

let rec cherche t a b x = ...

qui effectue la recherche entre les indices a (inclus) et b (exclus) du tableau t, et appeler cherche t 0 (Array.length t) x depuis recherche.

Exemples

AppelRésultat attendu
recherche [|1; 3; 5; 7; 9|] 5 2
recherche [|1; 3; 5; 7; 9|] 4 -1

Votre code

Connectez-vous pour soumettre du code.