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

С++ Выполнить поиск заданного элемента методом однородного бинарного поиска - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выполнить сортировку одномерного массива методом вставки в список с вычислением адреса http://www.cyberforum.ru/cpp-beginners/thread885098.html
Приветствую друзья программисты. Нужна ваша неотъемлемая помощь. Выполнить сортировку одномерного массива X(100) методом вставки в список с вычислением адреса. Буду очень признателен за вашу...
C++ Не хочет считывать второй раз строку Здравствуйте, пытаюсь работать с базой данных (в виде *.txt). Мои действия: 1) создаем базу данных, название вводим без ".txt" (1) 2) добавление новой записи в файл, предварительно обработав её... http://www.cyberforum.ru/cpp-beginners/thread885095.html
C++ Одновременно выходные данные
Описать процедуру Minmax(X, Y), записывающую в переменную X ми-нимальное из значений X и Y, а в переменную Y — максимальное из этих значений (X и Y — вещественные параметры, являющиеся одновременно...
C++ Построить последовательность заданного количества элементов
Приветствую друзья программисты. Нужна ваша неотъемлемая помощь. Построить последовательность заданного количества элементов, используя следующее рекуррентное соотношение: ai=ai-22+ai-12,...
C++ While. Ошибка в условии, бесконечный цикл http://www.cyberforum.ru/cpp-beginners/thread885069.html
#include <iostream> #include <cmath> #include <string> #include <fstream> using namespace std; int main () { double a; cin >> a;
C++ Специализация шаблона функции Как сделать специализированную функцию шаблон на тип int? У меня что-то не получается .. подробнее

Показать сообщение отдельно
drdrink
39 / 39 / 1
Регистрация: 13.05.2013
Сообщений: 103
31.05.2013, 21:14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int bin_search(int *a, int x, int n)  {
        int i = 0, k, c = n - 1;
        k = (i + c)/2 + 1;
        while(i <= c)  {
                if(a[k] == x) 
                        return k;
                else if(a[k] < x) 
                        i = k + 1;
                else
                        c = k - 1;
                k = (i + c)/2;
        }
        if(a[k] == x) 
                return k;
        else 
                return -1;
}
Возвращает номер элемента в масиве, если не найден то -1
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru