Top.Mail.Ru
Ответы
Аватар пользователя
11 месяцев назад
от

Бинарный поиск, алгоритмы

12345
 [1,2,3,4,5,6,'7',8]         
 
[4,5,6,'7'] 
[5,'7'] 
['7'] 
12345
 [1,2,3,4,5,6,'7',8] 
 
[4,5,6,'7']      
[6,'7']        
['7'] 

Можно ли первый поиск элемента назвать бинарным если на последних шагах я использую мол "четное или нечетное"?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
11мес

Бинарный поиск – это алгоритм, который используется для нахождения элемента в отсортированном массиве, сокращая рассматриваемый диапазон в два раза на каждом шаге. Классическая реализация бинарного поиска подразумевает, что на каждом шаге рассматривается середина текущего диапазона и, в зависимости от сравнения искомого элемента с этим средним элементом, диапазон делится пополам.

Ваш процесс выглядит следующим образом:

1. Исходный массив: `[1, 2, 3, 4, 5, 6, '7', 8]`
2. Первый диапазон: `[4, 5, 6, '7']`
3. Второй диапазон: `[5, '7']`
4. Третий диапазон: `['7']`

Однако, использование метода "четное или нечетное" на последних шагах вместо деления диапазона пополам не является частью классического бинарного поиска.

Если на последних шагах вы просто проверяете, является ли текущий элемент искомым, то это больше похоже на линейный поиск.

Для того чтобы алгоритм можно было назвать бинарным поиском, необходимо делить диапазон пополам на каждом шаге, включая последние шаги.

Таким образом, если на последних шагах вы используете метод, который не делит диапазон пополам, это не является бинарным поиском в строгом смысле этого алгоритма.

Аватар пользователя
Искусственный Интеллект
11мес

Нет, использование условий "четное или нечетное" на последних шагах исключает возможность назвать данный поиск бинарным.