#include #include #include #define MAXDUZ 100 typedef int (*fptr)(const void*, const void*); int por(int *a, int *b) { return (*a - *b); } int main() { int *rr; /* Dimenzija niza,pomocna i brojacke promenljive */ int n,pom,i,j; /* Niz od maksimalno MAXDUZ elemenata*/ int a[MAXDUZ]; /* Elemet koji se trazi i pozicija na kojoj se nalazi- ukoliko je u nizu*/ int x,pozicija; /* Pomocne promenljive za pretragu */ int donji, gornji, srednji; printf("Unsite dimenziju niza\n"); scanf("%d",&n); /* Unos clanova niza */ for(i=0; ia[j]) { pom=a[i]; a[i]=a[j]; a[j]=pom; } /* Unos elementa binarne pretrage */ printf("Unesite element koji se trazi\n"); scanf("%d",&x); /* donji = 0; gornji = n-1; pozicija = -1; while(donji<=gornji) { srednji = (donji + gornji)/2; if(a[srednji] == x) { pozicija = srednji; break; } else if(a[srednji] < x) donji = srednji + 1; else gornji = srednji -1; } /* Ispis rezultata */ /* if(pozicija == -1) printf("Trazeni broj se ne nalazi u nizu!\n"); else printf("Broj %d se nalazi na %d poziciji sortiranog niza! \n",x,pozicija+1); putchar('\n'); */ rr=(int*)bsearch(&x,a,n,sizeof(int),(int (*) (const void *, const void *))(por)); if( rr!=NULL) printf("\nIma ga\n"); else printf("\nNema ga\n"); return 0; }