Maxheap против приоритета очереди путаницы

Предположим, мы хотим отсортировать хэш-карту на основе значения. Для этого мы реализуем приоритетную очередь с компаратором. В результате полученный pq сортируется от наибольшего к наименьшему от индекса 0 до конца.

Вот код:

PriorityQueue<Map.Entry<Integer, Integer>> pq = new PriorityQueue<Map.Entry<Integer, Integer>>(
                new Comparator<Map.Entry<Integer, Integer>>() {
                    @Override
                    public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
                        return o2.getValue() - o1.getValue();
                    }
                });

Однако кто-то сказал, что это maxheap, я понимаю, что heap - это просто родительское значение, большее, чем дочернее значение, но я не могу понять, почему это maxheap? Это просто реализация компаратора в приоритетном порядке? Какое это имеет отношение к куче?

1 ответ

Решение

Внутренняя структура приоритетной очереди в Java является кучей.
Этот компаратор будет использоваться для сравнения с родительским значением в очереди приоритетов.

Другие вопросы по тегам