Bei Heap-Sortierung, wenn wir ein Array in aufsteigender Reihenfolge sortieren wollen, sollte der Heap dann in einen Max-Heap oder einen Min-Heap konvertiert werden?Heap sort, min-haufen verwendet werden oder max?
0
A
Antwort
3
Jeder Ansatz kann gemacht werden, um zu arbeiten. In der Regel verwenden Sie einen Max-Heap, der so angeordnet ist, dass das größte Element ganz links im Array liegt. Wenn Sie die Elemente aus dem Heap entfernen und entfernen, um sie an ihren endgültigen Positionen zu platzieren, können Sie sie auf der anderen Seite des Arrays von rechts nach links (in absteigender Reihenfolge) platzieren, ohne auf die anderen Heap-Elemente zu wechseln .
Im Prinzip könnten Sie auch einen min-Heap mit dem minimalen Element in der rechten Position erstellen, dann kleine Elemente aus der Warteschlange entfernen und sie ganz links verschieben, obwohl ich das noch nie zuvor gesehen habe.
Verwandte Themen
- 1. Kruskal mit Heap oder Sort-Algorithmus
- 2. Empfohlene Einstellung Max. Heap-Größe oder nicht?
- 3. Prioritätsliste mit Heap Sort (Java)
- 4. Min-Max Heap löschen max Element
- 5. Max Heap Segmentierung Fehler
- 6. Max-Heap-Darstellung eines Arrays
- 7. Min/Max Heap oder Priority Queue Datenstruktur in Objective-C
- 8. Max Heap und Min Heap-Implementierung für den Median Java
- 9. integrierte Max-Heap-API in Python
- 10. Delete-Max-Operation in einem Min-Max-Heap
- 11. Warum hat Heap Sort eine Raumkomplexität von O (1)?
- 12. Max Heap funktioniert nicht wie erwartet
- 13. warum mein C++ Programm signifikante Speicher verwendet, wenn tcmalloc Heap-checker oder Heap-Profil
- 14. Max und Min Heap mit den gleichen Elementen
- 15. Wie bekomme ich Max-Heap-Größe, die meine Java-App verwendet?
- 16. Heap Sort C funktioniert nicht beim Wechsel von Array zu Array unsigned int
- 17. Neo4j in Docker - Max Heap Größe Ursachen Hard crash 137
- 18. Leistungsproblem, Stack, Heap oder Prototypmuster?
- 19. Fibonacci, Binary oder Binomial Heap in C#?
- 20. Stack oder Heap in einer unsachgemäßen Heap-Zuweisung
- 21. Welcher Sortieralgorithmus wurde in stoss :: sort verwendet?
- 22. Grails findAll mit Sort, Order, Max und Offset?
- 23. Zuweisungsziel von std :: aligned_storage (Stapel oder Heap?)
- 24. -Xms: Erste Heap-Größe oder minimale Heap-Größe?
- 25. Erklären Radix Sort
- 26. Measure Heap Speicher von einzelnen Objekten verwendet
- 27. Wenn Heap erstellt wird, ist Heap eindeutig?
- 28. Max JVM-Heap-Größe verstehen - 32 Bit vs 64 Bit
- 29. wie neuen Wert in max Heap einzusetzen und anzuwenden max_delete
- 30. Ändern Max Speicher-Heap für Java unter Mac OS X
Ich habe auch Code gesehen, der einen Min-Heap verwendet, nach hinten herausnimmt und dann eine O (n) Umkehrung des Arrays nach dem Prozess ausführt. Ich habe nie verstanden, warum der Programmierer es so geschrieben hat. Im Allgemeinen habe ich den Max-Heap gesehen. Oh, und ich habe die Methode "Min-Heap im Rücken" gesehen. Ich weiß nicht, warum er es so gemacht hat. –
Vielen Dank @templatetypedef und @ jim-mischel! –