Острие

Что такое Куча

Я то думал что наша Куча - это потому что анеки все в кучу А оказывается, все не так то просто)))) Куча (структура данных) Материал из Википедии — свободной энциклопедии Перейти к: навигация, поиск Эта статья — о структуре данных в программировании. О динамической области распределения памяти см. Динамически распределяемая память. Пример полной бинарной кучи. В компьютерных науках ку́ча — это специализированная структура данных типа дерево, которая удовлетворяет свойству кучи: если B является узлом-потомком узла A, то ключ(A) ≥ ключ(B). Из этого следует, что элемент с наибольшим ключом всегда является корневым узлом кучи, поэтому иногда такие кучи называют max-кучами (в качестве альтернативы, если сравнение перевернуть, то наименьший элемент будет всегда корневым узлом, такие кучи называют min-кучами). Не существует никаких ограничений относительно того, сколько узлов-потомков имеет каждый узел кучи, хотя на практике их число обычно не более двух. Куча является максимально эффективной реализацией абстрактного типа данных, который называется очередью с приоритетом. Кучи имеют решающее значение в некоторых эффективных алгоритмах на графах, таких как алгоритм Дейкстры и сортировка методом пирамиды. Структуру данных куча не следует путать с понятием куча в динамическом распределении памяти. Впервые термин использовался именно для структур данных. В некоторых ранних популярных языках программирования типа ЛИСП обеспечивалось динамическое распределение памяти с использованием структуры данных «куча», которая и дала своё имя выделяемому объёму памяти.[1]. Кучи обычно реализуются в виде массивов, что исключает наличие указателей между её элементами. Над кучами обычно проводятся следующие операции: найти максимум или найти минимум: найти максимальный элемент в max-куче или минимальный элемент в min-куче, соответственно удалить максимум или удалить минимум: удалить корневой узел в max- или min-куче, соответственно увеличить ключ или уменьшить ключ: обновить ключ в max- или min-куче, соответственно добавить: добавление нового ключа в кучу. слияние: соединение двух куч с целью создания новой кучи, содержащей все элементы обеих исходных. Содержание 1 Варианты 2 Сравнение теоретических оценок вариантов 3 Применение 4 Реализации 5 См. также 6 Примечания Варианты 2-3 куча Двуродительская куча Двоичная куча Биномиальная куча Очередь Бродала Куча с D потомками Фибоначчиева куча Куча с приоритетом самого левого Спаренная куча Асимметричная куча Мягкая куча Тернарная куча Декартово дерево http://ru.wikipedia.org/wiki/%CA%F3%F7%E0_%28%F1%F2%F0%F3%EA%F2%F3%F0%E0_%E4%E0%ED%ED%FB%F5%29
02:08