![]() |
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
|
Гость ![]() |
Быстрее не быстрее, но 10-кратное ускорение на твоем же векторе можно получить не напрягаясь:
#include <fstream>Откуда берется ускорение понимаешь? ![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 4:22 |