Помогите с реализацией программы двоичного поиска в упорядоченном по возрастанию массиве NxM.
Помогите с реализацией программы двоичного поиска в упорядоченном по возрастанию массиве NxM.
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
29 марта 2010 в 20:02
Ну.. это было мое мнение )
Бинарный поиск предполагает деление пространства поиска на 2, и мой вариант больше подхъодит
29 марта 2010 в 20:01
Вообще, логично было бы искать число в каждом ряду методом "двоичного поиска" TM и всё. Правда, там ограничение на кол-во операций.
29 марта 2010 в 16:03
а тут я думаю стоит расмматривать ряды как элементы. Берем находим середину(строку,в вашем случае три элемента), в ней проверяем есть ли элемент, а далее последний элемент предыдущей строки и первый элемент следующей.
29 марта 2010 в 12:02
Просто массив может быть вида
1 1 2
2 3 3
3 4 5
3 5 9
5 6 10
И ищем число 3. И 3 с обеих сторон.
28 марта 2010 в 19:04
В алгоритмах не очень , но деля на 2 мы получаем границу, и смотрим что слева, что справа. Могу предположить, что есть допущение, что искомое число одно.
//ru.wikipedia.org/wiki/%D0%91%D0%B8%D0%BD%D0%B...
Пробежал глазами алгоритм, из него я делаю вывод, что число все таки 1.
Плюс мона посмотреть и под другим углом, если элементов много, нам не говориться какой именно найти (вернуть индекс
28 марта 2010 в 19:02
Ошибочка. Неубывающий массив. Просто число может оказаться в обоих частях.
28 марта 2010 в 18:05
и ? Все просто у тебя есть что искать. У тебя есть где искать, бинарный поиск предполагает деление промежутка пополам, а затем проверка в какой части в первой или второй (а у тебя отсортировано) находится искомая цель поиска. Поэтому это и называется бинарный/двоичный, потому что каждый раз область поиска уменьшается в 2 раза