![]() ![]() | 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; }