Tilbage til slide -- Tastaturgenvej: 'u'  forrige -- Tastaturgenvej: 'p'                arrays/array-search/bin-search-in-array.c - Binær søgning i et sorteret int array - rekursivt programmeret.Lektion 11 - slide 9 : 27
Program 3

#include <stdio.h>

int* find_in_sorted_array(int si, int *fp, int *tp){
  int *mp = fp + (tp - fp)/2;

  printf("Dist: %d.   [%d - %d]\n", (tp - fp), *fp, *tp);

  if (si == *mp)
    return mp;
  else if (fp >= tp)
    return NULL;
  else if (si > *mp)
    return find_in_sorted_array(si, mp+1, tp);  /* search in upper part */
  else 
    return find_in_sorted_array(si, fp, mp-1);  /* search in lower part */
}
     

int main(void) {
  int tab[] = {-9, 4, 8, 9, 12, 19, 21, 29};
  int done = 0, i;
  int *result;

  while (!done){
    printf("Search for: "); scanf(" %d", &i);

    result = find_in_sorted_array(i, &tab[0], &tab[0] + 7);
   
    if (result) printf("Found\n"); else printf("NOT found\n");
    done = i == 0;
  }
   
  return 0;
}