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

бинарный поиск по интервалу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Логическая задача на переливание жидкостей http://www.cyberforum.ru/cpp-beginners/thread557515.html
Даны 3 стакана: 1 - й вмещает 7 литров, 2-й вмещает 5 литров, 3-й вмещает 12 литров. Первые 2 стакана пусты, в третьем 12 литров воды. Воду можно переливать из одного стакана в другой до опустошения...
C++ Вызов из разных потоков функции чтения из файла, dll Доброго времени суток. Помогите пожалуйста написать программу, вот задание: Вызов из разных потоков функции чтения из файла. Функция находится в dll динамическое подключение . Функция чтения:... http://www.cyberforum.ru/cpp-beginners/thread557504.html
Задача на двумерный массив C++
Найти максимальный элемент матрицы
C++ работа с файлами
1. Написать программу, которая создает файл и записывает в него 5 введенных пользователем целых чисел, при чем каждое число должно находиться в отдельной строке.(без использования файловых потоков)...
C++ Считывание строки из файла. http://www.cyberforum.ru/cpp-beginners/thread557497.html
Появилась проблема. Строка из файла считывается, но не реагирует на пробелы. И не находит конец строки. #include <fstream> #include<iostream> using namespace std; int main(){ char s; ifstream...
C++ Даны целые числа a1, a2, a3. Получить целочисленную матрицу [ by]i, j= 1,2,3 для которой bij= ai - 3aj Даны целые числа a1, a2, a3. Получить целочисленную матрицу i, j= 1,2,3 для которой bij= ai - 3aj подробнее

Показать сообщение отдельно
Evgen2sat
19 / 19 / 7
Регистрация: 22.11.2011
Сообщений: 101

бинарный поиск по интервалу - C++

24.04.2012, 19:42. Просмотров 790. Ответов 8
Метки (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int Search1(data *list, int count,int left,int right) /* list указатель на структуру, count количество элементов, left левая граница поиска, right правая граница поиска*/
{
   int mid; //середина
   int low = 0; int high = count-1;
   while(left <= right) 
   {
     mid = (high+low)/2;
     if(left <= list[mid].key) 
     {
         return mid;
         right = mid-1;
     }
     if(right >= list[mid].key) 
     {
         return mid;
         left = mid+1;
     }
     else return mid; 
   }
   return -1;
}
помогите с бинарным поиском, в общем задается левая и правая граница, и то что между ними должно выводится, т.е. функция должна возвращать индекс левого значения и индекс правого, а потом все что между ними надо вывести. помогите подправить чтобы все работало
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru