Бинарный поиск, алгоритмы
[1,2,3,4,5,6,'7',8]
[4,5,6,'7']
[5,'7']
['7']
[1,2,3,4,5,6,'7',8]
[4,5,6,'7']
[6,'7']
['7']
Можно ли первый поиск элемента назвать бинарным если на последних шагах я использую мол "четное или нечетное"?
Бинарный поиск – это алгоритм, который используется для нахождения элемента в отсортированном массиве, сокращая рассматриваемый диапазон в два раза на каждом шаге. Классическая реализация бинарного поиска подразумевает, что на каждом шаге рассматривается середина текущего диапазона и, в зависимости от сравнения искомого элемента с этим средним элементом, диапазон делится пополам.
Ваш процесс выглядит следующим образом:
1. Исходный массив: `[1, 2, 3, 4, 5, 6, '7', 8]`
2. Первый диапазон: `[4, 5, 6, '7']`
3. Второй диапазон: `[5, '7']`
4. Третий диапазон: `['7']`
Однако, использование метода "четное или нечетное" на последних шагах вместо деления диапазона пополам не является частью классического бинарного поиска.
Если на последних шагах вы просто проверяете, является ли текущий элемент искомым, то это больше похоже на линейный поиск.
Для того чтобы алгоритм можно было назвать бинарным поиском, необходимо делить диапазон пополам на каждом шаге, включая последние шаги.
Таким образом, если на последних шагах вы используете метод, который не делит диапазон пополам, это не является бинарным поиском в строгом смысле этого алгоритма.
Нет, использование условий "четное или нечетное" на последних шагах исключает возможность назвать данный поиск бинарным.