Il programma sottostante esegue in modo ricorsivo la ricerca di un valore a interno all’interno di un vettore B ordinato di n elementi. Il programma si occupa quindi di selezionare un certo numero interno k \in {1, 2, \dots, n} tale che B[K] = a .

#include <stdlib.h>
#include <stdio.h>
#define N 10 // dimensione del vettore B

int ricerca(int a, int s, int l);

int B[N] = {1, 2, 6, 23, 31, 32, 54, 76, 90, 99};

int main(void) {
  int s = 0, l = N, a, r; // start (valore iniziale), limit (valore finale), valore da cercare, risultato

  printf("Valore da cercare: ");
  scanf("%d", &a);
  
  r = ricerca(a, s, l);
  (r ==-1) ? printf("Non trovato\n") : printf("Trovato in posizione: %d\n", r);

  return 1;
}

int ricerca(int a, int s, int l) {
  int k = (l+s)/2;
  int r = -1;

  if(l>=s) {
    if(B[k] == a)
      return k;
    else if(B[k] > a)
      r = ricerca(a, s, k-1);
    else if(B[k] < a)
      r = ricerca(a, k+1, l);
  }
  
 return r; // -1 se il numero non è presente nella lista
}

Per maggiori informazioni circa la sintassi del linguaggio si faccia riferimento alla guida al Linguaggio C.