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

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

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

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 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