Форум программистов, компьютерный форум CyberForum.ru

Бинарный поиск рекурсией - C++

Восстановить пароль Регистрация
 
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144
13.03.2014, 11:28     Бинарный поиск рекурсией #1
Не могу разобраться, какое условие дописать в функцию для возврата -1, если искомый элемент не найден?
C++
1
2
3
4
5
6
7
8
9
10
int BinSearch(int mas[],int Start, int End,int Val)
{
    int Mid=(Start+End)/2;
    if(Val==mas[Mid])
        return Mid;
    if(Val<mas[Mid])
        BinSearch(mas,Start,Mid-1,Val);
    else
        BinSearch(mas,Mid+1,End,Val);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 11:28     Бинарный поиск рекурсией
Посмотрите здесь:

C++ бинарный поиск
Бинарный поиск C++
C++ Бинарный поиск
Поиск максимального элемента одномерного массива (рекурсией) C++
C++ Бинарный поиск
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
13.03.2014, 11:31     Бинарный поиск рекурсией #2
Donnerwetter, если mid == 1 ? в общем, если отрезка для сравнения больше нет
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
13.03.2014, 11:54     Бинарный поиск рекурсией #3
C++
1
2
3
4
int BinSearch(int mas[],int Start, int End,int Val)
{
    if(Start == End) return -1;
    //...
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144
13.03.2014, 11:54  [ТС]     Бинарный поиск рекурсией #4
TenGen, Ilot, спасибо, понял
Yandex
Объявления
13.03.2014, 11:54     Бинарный поиск рекурсией
Ответ Создать тему
Опции темы

Текущее время: 14:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru