/* exemple en C */
#include <stdio.h>

/**
 * entree : tableau d'entiers trie dans l'ordre croissant,
 *               indice de debut positif ou nul,
 *               indice de fin strictement inferieur a la longueur du tableau
 *               et entier a trouver
 * sortie : un indice où se trouve l'entier, -1 s'il n'apparait pas
 */
int recherche(int *tab, int debut, int fin, int n){
  if (debut>fin) { return -1; }

  int i = (debut+fin)/2;
  if (n==tab[i]) { return i; }
  else if (n<tab[i]) { return recherche(tab, debut, i-1, n); }
  else { return recherche(tab, i+1, fin, n); }
}

int main(void){
  int tab[] = {-5,0,3,6,17,21};
  int lg = 6;
  int n = 5;
  
  printf("indice de %d : %d\n", n, recherche(tab, 0, lg-1, n));

  n = 3;
  printf("indice de %d : %d\n", n, recherche(tab, 0, lg-1, n));

  return 0;
}
