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

Двоичный(бинарный) поиск - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Промоделировать в консоли работу лифта http://www.cyberforum.ru/cpp-beginners/thread810986.html
Помогите пожалуйста доделать программу модуляции лифта. Вот мой код: #include <iostream> #include <stdio.h> #include <locale.h> using namespace std; class lift { int ch_floor, f; // Выбор этажа
C++ Из первого множества выбрать три различные точки Даны два множества точек на плоскости. Из первого множества выбрать три различные точки так, чтобы треугольник с вершинами в этих точках содержал (строго внутри себя) равное количество точек первого и второго множеств. Завтра начну сам думать над задачей, если кто-то чем-то может помочь пишите, очень поможете. http://www.cyberforum.ru/cpp-beginners/thread810977.html
C++ Некорректная запись кириллицы в файл
Здравствуйте! Подскажите, пожалуйста, как можно исправить (и можно ли вообще) вот такую ошибку: 1) Вводим, например, вот такие данные: http://img13.imageshost.ru/img/2013/03/17/image_5145a6ec585ae.png 2) В файл записывается вот так: http://img13.imageshost.ru/img/2013/03/17/image_5145a70a39d61.png
Напишите пожалуйста, коротко, функцию(С++) к данной задачке(про эллипс) C++
Добрый день всем! Пытаюсь решить задачу: По заданным целочисленным координатам вывести эллипсы. Определить, пересекаются ли фигуры, и найти площадь пересечения. По сути, как я понял, можно вычислить точки пересечения эллипсов, считать площадь сегментов каждого эллипса, отнять от каждого - площадь треугольника с основанием в длину хорды и с двумя другими сторонами - расстояния до центра...
C++ Обработка строк. Поменять местами в предложении слова http://www.cyberforum.ru/cpp-beginners/thread810955.html
Поменять местами в предложении слова: первое и последнее, второе и предпоследним и т.д.. Если слов нечетное количество, то среднее слово удалить.
C++ Объясните код Добрый день. Закомментируйте код программы пожалуйста. Не могу разобраться в нем.. Вот условие: Определить массив указателей на следующие функции: 1. среднее арифметическое; 2. сумма квадратов; 3. минимальное значение; 4. значение, максимально близкое к 0. Все функции описывать как float f(float, float, float). Внутри функции main организовать диалог с... подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.03.2013, 16:40     Двоичный(бинарный) поиск
Пишите бинарный поиск, манипулирующий границами интервалов. Граница — это нечто между элементами массива. Тогда у вас будет три интервала: слева, справа, и найденная двойка.

Или просто прибавьте единицу к тому, что получили, пройдя влево и вправо от найденного элемента. Всё равно он один.

Лучшее решение... Возможно, будет эффективнее использовать два подвида бинарного поиска: находящий самое левое вхождение и самое правое. Потом просто по разнице индексов определить количество. Но предпочтение этого метода простому линейному просмотру зависит от среднего количества повторений искомого элемента: при малом количестве повторений и большом массиве глянуть влево-вправо быстрее, чем делать ещё один поиск (а ещё поиск первого попавшегося элемента тоже чуть быстрее, чем поиск крайних).
 
Текущее время: 18:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru