Advertisement
kruall

Untitled

Oct 30th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. // бин поиск
  2. int left, right, half, x;
  3. cin >> x;
  4. left = MIN;
  5. right = MAX + 1;
  6. // Диапазон [MIN, MAX] или [left, right)
  7. while(right - left > 1){
  8.     half = left + right >> 1;
  9.     if (half <= x)
  10.         left = half;
  11.     else
  12.         right = half;
  13. }
  14. // left <= x | left -> max
  15. // right > x | rigth -> min
  16.  
  17. // тернарный поиск единственного экстремума на отрезке
  18. int left, right, delta, x1, x2;
  19. left = MIN - 1;
  20. right = MAX + 1;
  21. // Диапазон [MIN, MAX] или (left, right)
  22. while(right - left > 2){
  23.     delta = (right - left) / 3;
  24.     x1 = left + delta;
  25.     x2 = right - delta;
  26.     if (f(x1) <= f(x2))
  27.         rigth = x2;
  28.     else
  29.         left = x1;
  30. }
  31. // inf f = f(left + 1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement