Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2014, 01:07   #1
paulusfr
Пользователь
 
Регистрация: 12.10.2014
Сообщений: 10
По умолчанию Количество чисел, удовлетворяющих диапазону

Есть несколько чисел, условно любых чисел (int), условно в любом количестве(не бесконечно, но много); предположим это 1,4,7,10
Далее есть диапазон, предположим это 0..8.
Надо вывести, сколько чисел удовлетворяют диапазону. (В нашем примере это 3)
Задача казалось бы простая, но много крайних случаев, я путаюсь в бинарном поиске и из-за этого получаются неправильные ответы. Прощу помочь
paulusfr вне форума Ответить с цитированием
Старый 26.10.2014, 01:21   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

А причем здесь бинарный поиск?
Просто
Код:
cin >> from >> to;

cin >> n;

k = 0;

for (int i = 0; i < n; i++)
{
    cin >> t;
    if (from < t && t < to) k++;
}
Poma][a вне форума Ответить с цитированием
Старый 26.10.2014, 01:36   #3
paulusfr
Пользователь
 
Регистрация: 12.10.2014
Сообщений: 10
По умолчанию

Спасибо за ответ
Цитата:
Сообщение от Poma][a Посмотреть сообщение
А причем здесь бинарный поиск?
При том, что диапазон вводится после чисел. Сами числа мы заносим куда-то, в массив то бишь. И проходить линейно по всему массиву - это медленно.
paulusfr вне форума Ответить с цитированием
Старый 26.10.2014, 01:56   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
И проходить линейно по всему массиву - это медленно.
Но ведь нам надо каждый число в массиве проверить... или я чего-то не понимаю?
Вадим Мошев вне форума Ответить с цитированием
Старый 26.10.2014, 01:01   #5
paulusfr
Пользователь
 
Регистрация: 12.10.2014
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Но ведь нам надо каждый число в массиве проверить... или я чего-то не понимаю?
В оригинале у нас несколько таких диапазонов, и отсортировав массив один раз, можно будет просто проверять границы (где они находятся, между чем и чем), и сразу получить искомое количество путем разности, но это надо слегка адаптировать алгоритм бинарного поиска (который просто находит, есть число или нет) - вот это у меня и вызвало затруднение.

проблема решена

Последний раз редактировалось paulusfr; 26.10.2014 в 14:03.
paulusfr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти количество положительных чисел среди четырёх целых чисел. Если количество положительных чисел больше количества отрицательны grooveone Паскаль, Turbo Pascal, PascalABC.NET 5 17.12.2013 10:07
C# программа: матрица A(n,n). Подсчитать количество чисел принадлежащих диапазону [-1,1] в верхнем треугольнике матрицы Самсончик Помощь студентам 4 19.12.2012 11:07
Поиск содержания ячеек, удовлетворяющих диапазону и выгрузка строк или удаление лишних. tibhar940 Microsoft Office Excel 26 07.08.2012 12:33
Подсчитать количество элементов массива удовлетворяющих условиe vAselek Помощь студентам 1 11.03.2012 11:02
Необходимо сравнить 2 колонки и посчитать количество, удовлетворяющих условию druzimm3 Microsoft Office Excel 4 04.05.2010 00:27