Я изучил мини-кучи и мак-кучи, и у меня есть пара вопросов:
- Является ли отсортированный массив мини-кучей?
- Какое минимальное значение max-heap?
Я изучил мини-кучи и мак-кучи, и у меня есть пара вопросов:
Массив, отсортированный с самого низкого на самый высокий, является мини-кучей при использовании реализации кучи на основе массива. Свойство heap, что родительский node больше, чем его дочерние узлы (2i + 1 и 2i + 2, используя массивы с нулевым основанием), выполняется для всех узлов, имеющих дочерние элементы.
Минимальное значение максимальной кучи находится в одном из листовых узлов, но вы не знаете, что. Поскольку минимум node не может, по определению, иметь какие-либо дочерние узлы, он должен быть листом. Однако свойство кучи не указывает, как листовые узлы сравниваются друг с другом, только с их родителями.
Является ли отсортированный массив мини-кучей?
Да, если вы используете типичное хранилище кучи, хранящееся в массиве.
Где минимальное значение max-heap?
На одном из листьев. Что именно undefined.
Вы можете реализовать двоичную кучу как массив для сравнения индекса я с 2 * я + 1 и 2 * я + 2 (i начинается с 0). в минимальной куче a [i] a [2 * я + 1] и a [i] а [2 * я + 2]
так
1. Сортированный массив - это минимальная куча.
2. У него нет конкретного индекса. Все, что мы знаем, что это просто лист
Я предлагаю вам прочитать это http://en.wikipedia.org/wiki/Binary_heap
где - минимальное значение максимальной кучи?
Ans: Макс. куча может быть представлена простым массивом с начальным индексом от 1 до n. 1-й элемент - это корень максимальной кучи. Свойство heap: node в индексе я оставил дочерний элемент в 2i, а правый - в 2i + 1 (если 2i и 2i + 1 меньше размера кучи, то есть длины массива).
Листовые узлы максимальной кучи находятся от индекса я + 1 до n. Здесь я = n/2; n - длина массива. И один из листовых узлов имеет минимальное значение.
Таким образом, мы можем найти минимальное значение максимальной кучи от значений a [i + 1] до [n]. Сложность времени для нахождения минимального значения - порядок (n-i).
- сортированный массив - это мини-куча?
Если он упорядочен по возрастанию - да, вообще говоря, это куча минут, точнее - реализация массива двоичной кучи со следующими правилами:
В то же время он не работает обратным образом - двоичная куча на основе массива не будет хранить отсортированный список.
- где минимальное значение максимальной кучи?
Он не определен, и вы не хотите, чтобы вы быстро ответили, когда вы храните свои ключи в кучу минут. Если вы хотите, чтобы иметь возможность заглянуть как минимум и максимум кучи в O (1) время, вы можете использовать классы, как MinMaxPriorityQueue в Java.
Является ли отсортированный массив мини-кучей?
отсортированный массив - это мини-куча или макс-куча, но наоборот не соответствует действительности
min-heap или max-heap не обязательно отсортированы по массивам.
Каково минимальное значение max-heap?
max-heap (или очередь приоритетов) по определению обеспечивает максимальное значение из коллекции в O (1) раз. если кто-то должен получить минимальное значение из макс-кучи, то использование самой кучи в первую очередь для этой проблемы неверно. он, как ожидая, что стек обеспечивает доступ к FIFO или ожидает очереди для предоставления доступа к LIFO.
Но jfyi, min значение будет на одном из листьев дерева, образованного кучей. это может быть на любом поддереве. поэтому вам нужен еще один алгоритм, который займет больше времени O (1), чтобы найти его.
В качестве примечания:
Куча с n элементами может иметь от 1 до (n + 1)/2].
Если высота дерева, образованного кучей, равна h, то куча будет иметь до 2 ^ (h-1) листьев
Массивы могут быть отсортированы в порядке возрастания или в порядке убывания. Утверждение "Сортированный массив - это мини-куча" является частично правильным. Правильная версия этого утверждения: "Массив, отсортированный в порядке возрастания, может обрабатываться как min-heap", а оператор дополнения - "Массив, отсортированный по убыванию, может рассматриваться как максимальная куча".
"Массив, отсортированный в порядке возрастания, можно рассматривать как min-heap"
Но помните, что "не все мини-кучи могут принимать форму массива, отсортированного в порядке возрастания".
И о минимальном значении максимальной кучи мы знаем только, что это присутствует в листах, и мы можем искать это в O (n)