Hilfe Analyse Programmcode heapsort

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Dilo44
User
Beiträge: 3
Registriert: Mittwoch 26. August 2020, 16:18

Hallo zusammen, ich muss eine Hausarbeit über heapsort schreiben und Pythoncode diesbezüglich erklären. Kann mir jemand die einzelnen Schritte erklären von dem Programmcode, welches Befehl welche Auswirkung hat. Vielen Dank vorab.
from heapq import heappop, heappush

def heap_sort(array):
heap = []
for element in array:
heappush(heap, element)

ordered = []

# While we have elements left in the heap
while heap:
ordered.append(heappop(heap))

return ordered

array = [13, 21, 15, 5, 26, 4, 17, 18, 24, 2]
print(heap_sort(array))
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Das ist doch Deine Hausarbeit. Wie bist Du denn an den Python-Code gekommen?
Wie gut kannst Du Python und hast Du Dir schon die Dokumentation zu heapq gelesen?
Was ist Dir am Code konkret nicht klar?
Dilo44
User
Beiträge: 3
Registriert: Mittwoch 26. August 2020, 16:18

Hallole, ehrlich gesagt habe ich es aus dem Internet kopiert und selber nur getestet. Mit Python kenne ich mich nicht gut aus. Es geht darum welche Wirkung jede einzelne Zeile hat beziehungsweise welche Befehle welche Auswirkung haben. Danke vorab vielen Dank
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum Python? Ist das eine Vorgabe? Erster Einstiegspunkt ist Wikipedia, dort werden solche Algorithmen normalerweise gut und richtig erklärt.

Jetzt habe ich Deine Quelle auch gefunden und dort wird doch auch schon ausführlichst das Programm erklärt.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mit anderen Worten: dein Dozent will, das du verstehst, was du selbst programmieren solltest. Irgendwo in dieser Erwartungshaltung ist die Antwort auf dein Problem versteckt, aber ich komm nicht drauf.
Dilo44
User
Beiträge: 3
Registriert: Mittwoch 26. August 2020, 16:18

Und das Problem ist ich verstehe es leider nicht :/ was heapsort ist weiß ich aber nicht umgesetzt und nicht gerade Python ...
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Dilo44: Was verstehst Du denn nicht? „Heapsort“ wird wie schon geschrieben wurde beispielsweise bei Wikipedia erklärt, aber auch in vielen anderen Quellen. Und für Python gibt es ein Tutorial in der Python-Dokumentation. An welcher konkreten Stelle hakt es also beim verstehen das durch diese Quellen nicht abgedeckt wird?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Was die einzelnen Funktionen machen kannst du auch in der heapq Dokumentation nachschauen.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@Dilo44: Ähm... um das mal in einen anderen, verständlicheren Kontext zu setzen:

In einer Küche wäre dein Code die Hilfskraft, die das Geschirr in den Spüler räumt und sich hinterher freut, wie sauber es geworden ist.
Ich bin mir aber ziemlich sicher, dass du für deine Hausarbeit erklären musst, wie der Geschirrspüler funktioniert.
Antworten