BekzhanKassenov's blog

By BekzhanKassenov, 11 years ago, In Russian

Здравствуй, сообщество Кодефорсес!

Решая задачу с тимуса, я с ужасом осознал, что не умею писать бинарный поиск. Оказывается у меня есть лишь общее представление о нем, вроде такого:

int l = xxx, r = xxx; // здесь инициализация границ

while (xxx) {// пока условие, зависящее от границ 
    int m = f(l, r); // середина - какая-то функция от левой и правой границ

    if (check(m))  // это я знаю!!!
        l = f1(m); // мы каким-то образом меняем левую границу
    else
        r = f2(m); // мы каким-то образом меняем правую границу
}

//здесь вывод/возвращение/использование ответа (тоже непонятного)

Просмотр кодов, получивших АС по бин. поиску, гугла, википедии тоже утешительных результатов не дал — этих неизвестных параметров там такое многообразие, что непонятно что использовать.

В общем, будьте добры, кому не лень, скинуть правильную, рабочую, не зацикливающуюся версию бинарного поиска.

Спасибо за внимание!

  • Vote: I like it
  • +17
  • Vote: I do not like it