Acabei de perceber algo e me pergunto se existe alguma razão para isso. Exceto pelo C ++ (std :: priority_queue é um heap máximo), não conheço nenhuma outra linguagem que ofereça um heap máximo.
O módulo heapq do Python implementa um min-heap binário no topo de uma lista.
A biblioteca de Java contém uma classe PriorityQueue, que implementa uma fila de prioridade mínima.
A biblioteca do Go contém um módulo container / heap, que implementa um min-heap sobre qualquer estrutura de dados compatível.
A estrutura Core Foundation da Apple contém uma estrutura CFBinaryHeap, que implementa uma min-heap.
Acho um max-heap mais intuitivo que um min-heap e acredito que tecnicamente a diferença de implementação é apenas uma questão de alterar um operador de comparação. Existe algum motivo real? A maioria dos aplicativos precisa de um min em vez de um heap máximo? desde já, obrigado