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

Поиск методом деления пополам. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
proger2030
 Аватар для proger2030
11 / 11 / 2
Регистрация: 15.11.2010
Сообщений: 256
09.10.2011, 16:43     Поиск методом деления пополам. #1
Имеется железнодорожное расписание, содержащее номер рейса поезда, времена отправления и прибытия и станцию прибытия. Организовать поиск номера поезда, время отправления и прибытия, если задана станция.
Кто чем может помочь. Пойдет и словесной форма.. помогите начать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 16:43     Поиск методом деления пополам.
Посмотрите здесь:

Методом деления отрезка пополам и методом итераций найти прибли-женное значение корня уравнения C++
C++ Описать рекурсивную функцию, которая методом деления отрезка пополам находит корень уравнения
C++ Бинарный поиск деления пополам
C++ Нахождение корня методом деления отрезка пополам
C++ Поиск максимального елемента массива , используя метод деления пополам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
09.10.2011, 17:10     Поиск методом деления пополам. #2
Уточни. Нужно искать все рейсы на заданную станцию или кроме станции ещё есть какие-то критерии?
proger2030
 Аватар для proger2030
11 / 11 / 2
Регистрация: 15.11.2010
Сообщений: 256
09.10.2011, 17:26  [ТС]     Поиск методом деления пополам. #3
Цитата Сообщение от ya_noob Посмотреть сообщение
Уточни. Нужно искать все рейсы на заданную станцию или кроме станции ещё есть какие-то критерии?
Хотя бы одну можно и все рейсы это не суть. Использовать алгоритм бинарный (двоичный) поиск.
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
09.10.2011, 17:32     Поиск методом деления пополам. #4
Насколько я помню, сначала нужно отсортировать последовательность (массив, вектор, список - что у вас хранит это расписание) по ключу (по названии станции). Затем находим средний элемент последовательности (элемент с индексом size/2) и сравниваем его станцию с нужной. Если они равны - бинго, мы нашли нужный поезд, печатаем эту запись. Если "средняя" станция меньше искомой (раньше по алфавиту), то искомая запись будет во второй части последовательности (от середины до конца). Если "средняя" станция больше искомой (позже по алфавиту), то искомая запись будет в первой части последовательности (от начала до середины). После того, как выяснили, в какой части последовательности искать, в качестве последовательности рассматриваем эту часть и повторяем все сначала
proger2030
 Аватар для proger2030
11 / 11 / 2
Регистрация: 15.11.2010
Сообщений: 256
09.10.2011, 17:41  [ТС]     Поиск методом деления пополам. #5
Цитата Сообщение от aeshes Посмотреть сообщение
Насколько я помню, сначала нужно отсортировать последовательность (массив, вектор, список - что у вас хранит это расписание)
В чем хранить удобно(для поиска методом деления пополам) для данной задачи ?
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
09.10.2011, 17:45     Поиск методом деления пополам. #6
А в чем вам надо? Вы же откуда-то это задачу взяли? Там не было требований? Лучше, наверное, контейнеры STL с произвольным доступом, типа vector, но можно и массив структур взять, если с STL-ем не знакомы
Yandex
Объявления
09.10.2011, 17:45     Поиск методом деления пополам.
Ответ Создать тему
Опции темы

Текущее время: 04:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru