|
|
||||||||||||||||
Как ускорить логику цикла? [for experts]25.01.2021, 16:21. Показов 5702. Ответов 62
Приветсвую.
Есть рабочий код для простой задачи. На входе имеем начало и конец отрезкОВ надо определить какие области эти отрезки НЕ перекрыли. Грубо говоря какие доски забора остались НЕ покрашены. Например
Кликните здесь для просмотра всего текста
//битовое расположение используется для уменьшения памяти (отведенно максимум 2Гб для нашей задачи) и (надеюсь) увеличения скорости Но стоит задача его "ускорить". Т.к. например с такими входными данными этот код делается неприемлимо долго Кликните здесь для просмотра всего текста
Жду от уважаемого сообщества один из двух варианта ответа А) как еще можно ускорить данную логику ? Б) если существенно ускорения выше обозначенной логики не возможно, подскажите алгоритм (словесный код) как можно быстро (всмысле не написать код быстро а чтоб программа быстро крутилась) решить данную задачу ?
0
|
||||||||||||||||
| 25.01.2021, 16:21 | |
|
Ответы с готовыми решениями:
62
Как ускорить работу цикла?
Как ускорить выполнение цикла на Update |
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 25.01.2021, 21:15 | ||
|
0
|
||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||||||
| 26.01.2021, 00:59 | |||||||
std::sort, который в лоб заменяется на qsort
1
|
|||||||
|
Just Do It!
|
|||||||
| 26.01.2021, 03:52 | |||||||
100%
1
|
|||||||
|
|
|
| 27.01.2021, 19:45 [ТС] | |
|
посидел еще поработал над свои дизайном "в лоб" (ради практики и интереса)... изменил/упростил логику цикла и на 2 млрд элементов смог улучшить время на 1 секунду , с 7 до 6 секунд
на этом думаю можно остановиться, врядли кто сможет сделать еще лучше (а надо лучше)...приступаю за обдумывании логики с отрезками (ваши не смотрел) потом посматрю на чьи моё похоже, если заработает конечно ![]() всем спасибо за подсказки и за ваше время Не по теме: я не программист и даже не учусь на программиста. это моё хоби. не судите строго
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 27.01.2021, 19:52 | |||
|
Добавлено через 3 минуты Как минимум три запустится, ну да еще стандарт с++ 11+ желательно.
0
|
|||
|
|
||||||||
| 27.01.2021, 20:13 [ТС] | ||||||||
|
Кликните здесь для просмотра всего текста
0
|
||||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 27.01.2021, 20:36 | |
|
alexbmd, тогда могу лишь пожелать удачи, и заниматься такими вещами на свежую голову.
0
|
|
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
||||||
| 28.01.2021, 18:45 | ||||||
|
Может как-то так еще, без оптимизации, в качестве идеи, что-то вроде std::set:
0
|
||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||
| 28.01.2021, 19:18 | ||
|
1
|
||
|
Just Do It!
|
|
| 28.01.2021, 19:56 | |
|
1
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||
| 28.01.2021, 20:09 | ||
|
1
|
||
|
Just Do It!
|
|||||||
| 28.01.2021, 20:22 | |||||||
|
ваш #23 во французской обработке:
0
|
|||||||
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|
| 28.01.2021, 20:23 | |
|
1
|
|
| 28.01.2021, 20:38 | |
|
0
|
|
|
|
|
| 29.01.2021, 13:14 [ТС] | |
|
Приветсвую.
в своей логике по работе с отрезками упёрся в qsort точне что он не сортирует двумерный массив.я в своей логике использую двумерный массив для хранения начала и конца отрезка. и всё работает хорошо если отрезки отсортированны по началу. но немогу передать свой НЕ отсортированный двумерный массив qsort-у (по понятным причинам) как то можно в Си выкрутится из этой ситуации ?
0
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||
| 29.01.2021, 13:19 | |||
|
0
|
|||
|
|
|
| 29.01.2021, 14:52 [ТС] | |
|
кажется туплю.. сейчас подумаю еще..
Добавлено через 1 час 31 минуту TheCalligrapher, да, в чём туплю я понял, но без интернета фиг бы я правильно написал компоратор (ааар почему моя голова сама не додумывается до всех этих приведений типа, разименовываний и пр.)... вроде лёд тронулся... щяз чуть подшлифую и буду проверять на инпут дате... хотел вас спросить почему все использую разный вариант ретурна (если они вроде эквивалентны) ? return (arg1 > arg2) - (arg1 < arg2); return arg1 - arg2;
0
|
|
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|
| 29.01.2021, 16:12 | |
|
0
|
|
| 29.01.2021, 16:12 | |
|
Можно ли как нибудь ускорить работу цикла for? Ускорить работу вложенного цикла for() C# Welcome to experts C++! Minsk.BelHard.vacancies: Java Experts, Team Lead, PM Как из цикла вывести данные для другого цикла? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|