2013-07-29 3 views
4

Здесь массив ровно 15 элементов:Двоичный поиск в C++ с использованием массива

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 

Предположим, что мы делаем бинарный поиск элемента. Укажите любые элементы, которые будут найдены путем изучения двух или более чисел из массива.

Что у меня есть: поскольку мы делаем двоичный поиск, поэтому число, найденное только одним сравнением, будет 7-м элементом = 7. Для двух сравнений это приводит к второму делению массива. То есть число найденное может быть либо 3, либо 11.

Я прав или нет?

+0

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

+0

Да, это приведет вас к двум сравнениям, но иногда массив не будет заказан, вы можете заказать его раньше. – Overmachine

+1

Учитывая массив в описании проблемы, на самом деле это будет '4 8 12'. – lcs

ответ

2

Вы почти правы, первое число - не семь, а восемь.

Остальные 2 затем будет 4 и 12.

Правильный ответ будет 4, 8, 12

+0

Спасибо всем за ваш быстрый ответ – user2569893

+0

Добро пожаловать – vals

0

`Я нашел ответ, чтобы быть 8, что является 7-элемент, нашел другие элементы были 3,5 и 10,5-го элемента сортированного массива. Итак, следующие два числа: 4 и 11.

пояснение о том, как я получил ответы.
данный массив является 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

head=1 
tail=15 
middle= 0+14/2=7th element **0 is the index value of 1 and 14 is of 15**  
middle value turns to be 8 as it is the 7th element. 

solving value for first half 
head=1 
tail=8 
middle= 0+7/2=3.5 or 3rd element **0 is the index value of 1 and 7 is of 8** 

middle value now turns to be 4 as it is the 3rd element. 

solving value for second half 
head=8 
tail=15 
middle= 7+14/2=10.5 or 10th element **7 is the index value of 8 and 14 is 
of 15** 

middle value now turns to be 11 as it is the 10th element of the array` 

Blockquote

+1

Объяснение того, как вы получите свой ответ, было бы неплохо для других пользователей. – ssoler

Смежные вопросы