#include #define MAX 10 /* rekurzivno binarno pretrazivanje clana niza a koji je jednak sa x. F-ja bin_pret vraca indeks (d..g) clana niza a koji je jednak vrednosti od x ili -1 ako takav ne postoji */ int bin_pret(int a[], int d, int g, int x); int main() { int n; /*dimenzija niza */ int a[MAX]; /*neopadajuci niz celih brojeva sa ne vise od MAXDUZ elemenata*/ int x; /* element koji se trazi */ int poz; /* indeks onog clana niza cija je vrednost jednaka vrednosti koja se trazi (ako postoji takav clan niza)*/ int pom; /* pomocna promenljiva pri kontroli unosa niza u odgivarajucem poretku */ int i; /* brojacka promenljiva */ do { printf("Unesite broj clanova niza izmedju 1 i %d\n", MAX); scanf("%d", &n); } while (n <1 || n >MAX) ; printf("\ta[0]= "); scanf("%d", &a[0]); pom=a[0]; /* Unos clanova neopadajuceg niza celih brojeva */ for( i=1; i gornja) /* traganje se prekida kada duzina intervala pretrage postane < 0 */ return -1; else { sred=(donja+gornja)/2; /* polovljenje intervala za pretragu */ if (x==a[sred]) return sred; /* nadjeno x u nizu a */ else if (x < a[sred]) return bin_pret(a, donja,sred-1, x); /*leva polovina tekuceg intervala je kandidat za pretragu */ else return bin_pret(a,sred+1,gornja, x); /* desna polovina tekuceg intervala je kandidat za novu pretragu */ } }