При создании двоичной максимальной кучи, почему лучше реализовать ее как основанную на массиве, а не древовидную структуру (в основе дерева, как и в каждом node, также имеющий указатель на нее родительский)? С точки зрения анализа времени выполнения, использования памяти, производительности...
Для двоичной максимальной кучи время выполнения:
- insert: O (lg n)
- удалить мин: O (lg n)
- merge: O (n)
Для реализации дерева
- insert: O (lg n)
- удалить мин: O (lg n)
- merge: O (n)
Может ли кто-нибудь объяснить подробно?