Mir ist gerade etwas aufgefallen und ich frage mich, ob es dafür einen Grund gibt. Mit Ausnahme von C ++ (std :: priority_queue ist ein maximaler Heap) kenne ich keine andere Sprache, die einen maximalen Heap bietet.
Pythons Heapq-Modul implementiert einen binären Min-Heap über einer Liste.
Javas Bibliothek enthält eine PriorityQueue-Klasse, die eine min-priority-queue implementiert.
Die Bibliothek von Go enthält ein Container- / Heap-Modul, das einen Min-Heap über jeder kompatiblen Datenstruktur implementiert.
Das Core Foundation-Framework von Apple enthält eine CFBinaryHeap-Struktur, die einen Min-Heap implementiert.
Ich finde einen Max-Heap intuitiver als einen Min-Heap und technisch gesehen ist der Implementierungsunterschied nur eine Frage der Änderung eines Vergleichsoperators. Gibt es einen wirklichen Grund? Die meisten Anwendungen benötigen einen minimalen statt einen maximalen Heap? Danke im Voraus