squadbrodyaga
@squadbrodyaga
帆は風を変えた

Будет ли работать бинарный поиск, если в массиве есть пробелы?

Здравствуйте, будет ли в таком массиве работать бинарный поиск?
[1, 4, 5, 6, 12, 13, 27 и тд.]
Если нет, то какой еще способ можно реализовать помимо линейного?
  • Вопрос задан
  • 62 просмотра
Решения вопроса 2
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Будет. Бинарному поиску главное, чтобы числа в массиве не убывали. Даже если там числа больше предыдущего не только на 1.
Ответ написан
Комментировать
@Mercury13
Программист на «си с крестами» и не только
Что такое вообще «пробелы»?
1. Пробелы в исходном коде: за пределами закавыченных строк это только оформление и в исполнении не участвует. Ну и слова, разумеется, нужно разделять пробелами — как в паскалевском «packed array» или сишном «int main».
2. Пропуски: не 1,2,3, а 1,4,5. Да, для этого бинарный поиск и предназначен: массив отсортирован, никаких других правил нет, найти или сам элемент, или место, куда вставить его.
Например, ищем 7: 6 → больше, 13 → меньше, 12 → меньше. Не нашли; если нужно вставить — то после 6-ки.
Ищем 1: 6 → меньше, 4 → меньше, 1 → попали.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы