Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 27.12.2012
Сообщений: 47

Подскажите быстрый поиск количества интервалов в отрезке

31.07.2013, 15:39. Показов 1029. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив H[N]
Есть отрезок x+dx.
Задача найти количество интервалов на которое делится отрезок x+dx массивом H[N].
Наверняка с такой задачей уже кучу раз сталкивались, и есть оптимальное по быстродействию решение. Подскажите его, а то у меня как то коряво получается.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2013, 15:39
Ответы с готовыми решениями:

Поиск на отрезке количества чисел, сумма цифр которых есть однозначное число
1. Написать программу поиска на отрезке ( a < b, a и b натуральные числа) количества чисел сумма цифр которых есть однозначное число

Поиск интервалов
всем доброго времени суток. у меня возникли трудности в реализации алгоритма подсчета. суть вот в чем. имеется три двухмерных массива:...

Поиск интервалов
Здравствуйте. Имеется длинная таблица состоящая из 30 столбцов, которые обозначаются неделями (N1, N2, N3 и т.д.) N1 N2 N3 N4 N5 N6 N7...

6
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
31.07.2013, 15:54
1) пройтись по H[N], отобрать точки, попадающие в заданный отрезок. Время O(N).
2) отсортировать оторанные точки. Время O(NlogN).
3) удалить дубликаты в отсортированных точках. Время O(N).
4) число оставшихся отобранных точек + 1. Время O(1)
0
0 / 0 / 1
Регистрация: 27.12.2012
Сообщений: 47
31.07.2013, 16:15  [ТС]
Небольшое уточнение H[N] уже отсортирован...

Ну у меня вот как то так получается...Проверею конец и начало отрезка на предмет попадания в массив, далее нахожу конец и начало фрагмента в массиве.Норм?
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
template<class T>
int get_segment_in_arr(T x, const T *H, int N)
{
    int i0 = 0, i2 = N;
    for(; i2-i0>1; ) {
        const int i1 = (i0+i2)>>1;
        if( x<H[i1] )
            i2 = i1;
        else
            i0 = i1;
    }
    return i0;
}
 
template<class T>
int get_segment_count(T x,T dx, const T *H, int N)
{
    if((x+dx)>H[N])
    {
        count++
    }
    if(x<H[0])
    {
        count++
    }   
    int begin = get_segment_in_arr(x,H,N);
    int end = get_segment_in_arr((x+dx),H,N);
    count +=end - begin +1;
             return count;
 
}
0
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
31.07.2013, 16:25
Дубликаты, я так, понимаю, тоже не встречаются. Ну тогда ок.
Но ведь это C++, есть множество готовых алгоримов в STL, включая двоичный поиск в отсортированном массиве. Если же главная задача - реализовать такой поиск руками, то хоть название функциям давайте осмысленные и соответствующие их задачам.
0
0 / 0 / 1
Регистрация: 27.12.2012
Сообщений: 47
01.08.2013, 10:47  [ТС]
Да, там все таки есть дубликаты.
0
194 / 174 / 30
Регистрация: 10.07.2012
Сообщений: 800
01.08.2013, 10:52
Цитата Сообщение от Maxak Посмотреть сообщение
Задача найти количество интервалов на которое делится отрезок x+dx массивом H[N].
приведите, пожалуйста, разумную формулировку задачи...
1
0 / 0 / 1
Регистрация: 27.12.2012
Сообщений: 47
01.08.2013, 13:11  [ТС]
Цитата Сообщение от salam Посмотреть сообщение
приведите, пожалуйста, разумную формулировку задачи...
выделил в отдельный топик.
Выделить из упорядоченного массива подмассив ограниченный точками x1, x2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.08.2013, 13:11
Помогаю со студенческими работами здесь

Поиск межбуквенных интервалов
Здравствуйте. У меня возникла проблема. Надо найти расстояние от одной буквы к той же. Например предложения. Олег пишет программу....

Быстрый подсчет количества бит
Нужно подсчитать количество бит, равных единице в int32, использую статический массив, в котором заранее подсчитаны значения для 0x0000 -...

Быстрый подсчёт количества выставленных бит
Привет магистры ассеблеровских диалектов! :) Нет ли на обычном CPU (типа i7) какой-то хитрой команды, что бы подсчитать кол-во...

Поиск интервалов в которые входит заданная точка
Не знаю куда, так что спрошу здесь. Дан неупорядоченный список интервалов заданных парами {min,max}. Интервалы могут частично пересекаться...

Хранение большого количества файлов и быстрый доступ к ним
мне надо хранить загружаемые файлы чтобы доступ к любому файлу был очень быстрым. т.к. пути к файлом и список файлов пользователя хранится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru