Всем привет. Вот задача :
Главный вопрос - как найти индекс нулевого элемента и что делать если их два. Если найти нулевой индекс задачу можно считать решенной. Итак что мы имеем :
Собственно все что вам нужно, кроме вышеуказанных формул - это сам бинарный поиск. Дело в том, что какой-то формулы, для нахождения n нет. Нужно его искать путем перебора, но, так как n может быть давольно большим числом, перебор от 0 до самого последнего элемента не эффективен. Просто берете среднее midle между left = 0 и right = n(max) и выводите B. После этого проверяете в какую сторону надо двигаться? Для этого находите элементы правее и левее вашего нулевого элемена h[n]. Если они оба выше 0 (ну или один из них также равен 0), то поздравляю - вы пополи в точку - это тот самый n. Но если левый элемент меньше 0, то это означает, что n находится левее, так что теперь ищем в диапазоне left до right = midle. Если наоборот, то в диапазоне left = midle до right.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости