marian1010

Cautare binara

May 26th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. int n,x,v[10],m;
  2. int caut(int s, int d)
  3. {
  4.     if(s>d)
  5.         return -1;
  6.     else
  7.         {
  8.             m =(s+d)/2;
  9.             if (x==v[m])
  10.                 return m;
  11.             if (x<v[m])
  12.                 return caut(s,m-1);
  13.             else
  14.                 return caut(m+1,d);
  15.         }
  16. }
  17.  
  18. int cb3(int *v, int x, int st, int dr) {
  19.     if (st > dr) {
  20.         return -1;
  21.     }
  22.     else {
  23.         int mij1 = (st + dr) / 3, mij2 = (st + dr)*0.66;
  24.         if (x == v[mij1]) return mij1;
  25.         if (x == v[mij2]) return mij2;
  26.  
  27.         if (x < v[mij1]) return cb(v, x, st, mij1 - 1);
  28.         if (x > v[mij1] && x < v[mij2]) return cb(v, x, mij1 + 1, mij2 - 1);
  29.         if (x > v[mij2]) return cb(v, x, mij2 + 1, dr);
  30.     }
  31. }
Add Comment
Please, Sign In to add comment