Форум программистов, компьютерный форум, киберфорум
Наши страницы

Поиздеавться над бинарным поиском - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа не работает в RAD Studio 10 Seattle http://www.cyberforum.ru/cpp-beginners/thread1761181.html
не работает в rad studio 10 seattle прога, в чем может быть проблема ребята? можете отредактировать прогу, кому не сложно, что бы заработало , а то выдает ошибки какие-то #include <iostream>...
C++ Указатели,нужно разобраться в программе Всем добро времени суток. Учился работать с базами данных по этому видеоуроку: https://www.youtube.com/watch?v=F8aciqcO_Cg вот конечная программа:... http://www.cyberforum.ru/cpp-beginners/thread1761155.html
Домашний бюджет и инфляция C++
Помогите написать программу для решения такой задачи - составьте список основных продуктов питания, покупаемых в вашей семье за какой-то промежуток времени (неделя, месяц): хлеб, молоко, масло,...
C++ Специфика описания методов класса и инициализации объектов на примере класса Date
Создайте класс Date, который будет содержать информацию о дате (день, месяц, год). С помощью механизма перегрузки операторов, определите операцию разности двух дат (результат в виде количества дней...
C++ Массив структур и все такое http://www.cyberforum.ru/cpp-beginners/thread1761023.html
В чем суть: Существует описание структуры struct student { string NAME; int GROUP; int SES; };
C++ Обработка ошибок #include <iostream> using namespace std; class fraction { private: int num; // числитель int den; // знаменатель public: fraction( ) : num( 0 ), den( 1 ) { } подробнее

Показать сообщение отдельно
NRX
19 / 19 / 6
Регистрация: 22.09.2015
Сообщений: 146
Завершенные тесты: 1

Поиздеавться над бинарным поиском - C++

12.06.2016, 21:03. Просмотров 181. Ответов 6
Метки (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int double_search(int i, int size, int right, int left, int *var)
{
    int position = left + (right - left) / 2;
    if (var[position] == i) return position;
    if (left == right || right < 0) return -std::numeric_limits<int>::max();
    if (var[position] > i)
    {
        right = position - 1;
        double_search(i, size, right, left, var);
    }
    else
    {
        left = position +1;
        double_search(i, size, right, left, var);
    }
}
 
int double_search(int i, int size, int *var)
{
    int right = size - 1, left = 0;
    
    return double_search(i, size, right, left, var);
    
}
(Если искомого числа нет то возвращает наименьший из возможных int)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru