![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
first_day |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 86 Пол: Мужской Реальное имя: Илья Репутация: ![]() ![]() ![]() |
Передо мной стоит следующая задача:
Есть (N<10^5) чисел, на каждом шаге алгоритма нужно находить 2 минимальных числа и заменять их на их сумму. Так делается до тех пор, пока не останется одно число. Сделать то я сделал, вот только работает это долго. Знаю, что есть такая структура данных как куча, которая выдает минимальный элемент за O(1) и добавляет за O(log N). Но как это реализовывать не знаю, не нашел. А то, что находил, было совсем не понятно... возможно потому, что никогда не работал со структурами. Может это можно реализовать на простом массиве? Помогите, кто может. ![]() P.S. Вот как я делал:
Сообщение отредактировано: first_day - 2.05.2008 16:54 -------------------- Я бы изменил мир, да Бог не дает исходников.
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Сделать то я сделал, вот только работает это долго Можно посмотреть, как именно ты реализовал, и озвучить, что значит "долго", и насколько быстрее хочется?Упс... Не успел. Но вторая часть вопроса - в силе... Сообщение отредактировано: volvo - 2.05.2008 17:15 |
first_day |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 86 Пол: Мужской Реальное имя: Илья Репутация: ![]() ![]() ![]() |
что значит "долго", и насколько быстрее хочется? При моей реализации если N=5000 программа работает дольше секунды, а нужно, чтобы при N=100000 работало быстрее секунды -------------------- Я бы изменил мир, да Бог не дает исходников.
|
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 4:07 |