Il programma sottostante esegue in modo iterativo 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, r = -1;

  while(l>=s) {
    k = (l+s)/2;

    if(B[k] == a) {
      r = k;
      break;
    }
    else if(B[k] > a)
      l = k-1;
    else if(B[k] < a)
      s = k+1;
  }

  return r;
}

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