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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Apokalypsys
6 / 6 / 0
Регистрация: 21.04.2013
Сообщений: 19
#1

Двоичный поиск - C++

21.04.2013, 19:48. Просмотров 317. Ответов 0
Метки нет (Все метки)

Всем привет!
Решал задачу "Бинарный поиск. Дана последовательность чисел a1; a2; ...; an. Найти элемент данной последовательности, который был бы равен заданному числу M методом бинарного поиска. Вывести индекс найденного элемента или -1, если таковой найден не был".
Вот код алгоритма:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int binary_search(vector<int> arr, int key) {
    int last = arr.size();
    int index = last/2;
    int c = index + 1;
    for (int i = 0; i < c; i++) {
        if (arr[index] == key) goto l1;
        else if (arr[index] > key) {last = index; index /= 2;}
        else if (arr[index] < key) index = (index + last) / 2;
    }
    index = -1;
l1:
    return index;
}
Я проверял его на массивах до 1000, но всё таки, если здесь есть ошибки, укажите на них, пожалуйста. Желательно не исправлять, а говорить к чему она может привести.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2013, 19:48     Двоичный поиск
Посмотрите здесь:

Двоичный поиск - C++
Требуется найти в массиве элементы которые повторяются и элементы которые присутствуют единожды. #include &lt;stdafx.h&gt; #define N 10 ...

двоичный поиск - C++
Подскажите, пожалуйста, в вопросе: Какое дополнительное требование к массиву может быть применено при двоичном поиске, что бы определить...

двоичный поиск - C++
Помогите, пожалуйста, модифицировать программу на рисунке, чтобы для выполнения двоичного поиска в массиве можно было использовать...

Двоичный поиск - C++
Добрый день. Помогите найти ошибку в двоичном поиске. Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int...

Двоичный поиск - C++
Нашел на форуме двоичный поиск, не подскажите как нужно изменить код, что бы программа выводила еще и индекс, в котором находится введенное...

Двоичный поиск - C++
Помогите пожалуйста с двоичным поиском: нужно найти абитуриента с 287 баллами методом двоичного поиска.. #include &lt;iostream.h&gt; ...

Двоичный(бинарный) поиск - C++
Столкнулся с такой проблемой. использую бинарный поиск в упорядоченном массиве чисел для поиска количества повторений нужного мне числа К...

Приближенный двоичный поиск - C++
Доброго времени суток, форумчане. Задача такая: В первой строке входных данных содержатся числа N и K (0 &gt; N,K &gt;100001 ). Во второй...

Нерекурсивный двоичный поиск - C++
необходимо написать на С++ двоичный поиск в рекурсивном варианте. вот пример рекурсивной ф-ции двоичного поиска: int BinSerch(int...

Двоичный поиск в map - C++
Здравствуйте. Помогите разобраться в следующей проблеме. В общем, мне нужно реализовать двоичный поиск в map по ключам. Понятное дело,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru