Куча:          

Очень похожа на очередь, только извлекается элемент не самый ранний, а с минимальным/максимальным к.л. параметром. Реализуется в виде бинарного дерева. Чтобы добавить элемент в кучу, довавляем его в самый конец, и затем упорядочиваем кучу обменом: Если отец элемента меньше/больше положенного элемента, меняем их местами, и повторяем далее для нового отца. Блин, ну и выразился :). Чтобы взять элемент из кучи, бурем из его вершины, добавляем в нее самый последний элемент, и уравновешиваем по такому-же правилу.
Сложность операции добавления элемента в кучу - О(logN). Пользуясь этим можно написать сортировку кучей: сначала добавляем все элементы в кучу, затем извлекаем - сложность такой сортировки - O(N*logN)

 

Hosted by uCoz