#include #include #define Nmax 256 int prvi_veci_od_k(int niz[], int n, int k) { /* Granice pretrage */ int l = 0, d = n - 1; int s; /* Sve dok je leva manja od desne granice */ while (l <= d) /* Racuna se sredisnja pozicija */ { s = (l + d) / 2; /* Ako je broj na toj poziciji veci od k, a eventualni njegov prethodnik manji ili jednak k, pretraga je zavrsena */ if (niz[s] > k && ((s > 0 && niz[s - 1] <= k) || s == 0)) return niz[s]; /* U slucaju broja manjeg ili jednakog k, pretrazuje se desna polovina niza */ if (niz[s] <= k) l = s + 1; /* A inace, leva polovina */ else d=s-1; } return -1; } int main(int argc, char* argv[]) { int niz[Nmax]; int n, k; for (n=0; n