Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // бин поиск
- int left, right, half, x;
- cin >> x;
- left = MIN;
- right = MAX + 1;
- // Диапазон [MIN, MAX] или [left, right)
- while(right - left > 1){
- half = left + right >> 1;
- if (half <= x)
- left = half;
- else
- right = half;
- }
- // left <= x | left -> max
- // right > x | rigth -> min
- // тернарный поиск единственного экстремума на отрезке
- int left, right, delta, x1, x2;
- left = MIN - 1;
- right = MAX + 1;
- // Диапазон [MIN, MAX] или (left, right)
- while(right - left > 2){
- delta = (right - left) / 3;
- x1 = left + delta;
- x2 = right - delta;
- if (f(x1) <= f(x2))
- rigth = x2;
- else
- left = x1;
- }
- // inf f = f(left + 1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement