Diskussion:Timsort

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 5 Monaten von 77.22.10.5 in Abschnitt Pseudocode (stark vereinfachtes Timsort)
Zur Navigation springen Zur Suche springen

Fehler auf aktuellen Rechnern nicht produzierbar[Quelltext bearbeiten]

"Dieser Fehler hat keine praktischen Auswirkungen, da er nur auf Rechnern mit sehr viel Speicher auftreten kann, die zurzeit nicht existieren"

Das glaube ich nicht, unser Dozent hat diesen Fehler gerade Live auf einem MacBook demonstiert. Kann man diesen Satz streichen ? (nicht signierter Beitrag von Flashspys (Diskussion | Beiträge) 13:36, 30. Apr. 2015 (CEST))Beantworten

Interessant. Die Quelle für obige Aussage ist diese hier. Hat dein Dozent das mit Python oder Java vorgeführt? Evtl. ist der Fehler in Python ja kritischer als in Java, die Beschreibungen in der Quelle beziehen sich auf den Python Code. Oder vielleicht hat dein Dozent eine absichtlich kaputt-gepachte Version für Demonstrationszwecke? -- Michi 17:43, 30. Apr. 2015 (CEST)Beantworten
Ich bin mir sicher, dass er eine (veraltete aber offizielle) Java-Version verwendet hat. --Flashspys (Diskussion) 20:59, 12. Mai 2015 (CEST)Beantworten
Michi, in der Quelle, die du oben angibst, steht aber nur, dass der Bug in Python nicht realistischerweise auftreten kann. In Java geht/ging das durchaus, wie direkt zu Beginn des Papers gezeigt wird. Ich passe diese Stelle im Artikel mal dementsprechend an. --Jonathan Boatl (Diskussion) 12:07, 22. Jul. 2015 (CEST)Beantworten

Defekter Weblink[Quelltext bearbeiten]

GiftBot (Diskussion) 09:01, 2. Feb. 2016 (CET)Beantworten

Pseudocode (stark vereinfachtes Timsort)[Quelltext bearbeiten]

Der folgende von mir erarbeitete Pseudocode, stellt die Grundfunktion von Timsort als rekursive Lösung dar. Das Array wird in Abschnitte von maximal 24 Einzelelementen unterteilt, die dann mit Insertionsort sortiert werden. Jeweils zwei dieser Bereiche, werden anschließend mit Mergesort zusammengerechnet. Jeweils zwei durch Mergesort entstandene Bereiche, werden dann wieder mit Mergesort zusammengerechnet, bis am Ende nur noch ein Bereich übrig ist und die Sortierung damit beendet ist.

Funktion Timsort(links, rechts)
N = rechts - links
falls N < 25 dann
    sortiere von links bis rechts mit Insertionsort
    Funktion Ende
Ende
p = links + Int(N / 2)
starte Funktion Timsort(links, p)
starte Funktion Timsort(p + 1, rechts)
rechne (links bis p) und (p + 1 bis rechts) mit Mergesort zusammen
Funktion Ende

--77.22.10.106 14:13, 20. Feb. 2023 (CET)Beantworten

Ja, in Videos auf YouTube wird praktisch immer in Abschnitte zu 24 Elementen geteilt, aber im Artikel steht unter "Funktionsweise", dass nur dann in zwei weitere Bereiche aufgeteilt wird, wenn es mehr als 63 Elemente sind.
Dieser Pseudocode setzt auch nicht um, dass bereits vorsortierte "absteigende" Abschnitte gespiegelt werden, damit sie dann "aufsteigend" sind. Leider ist der Abschnitt Funktionsweise in diesem Punkt nicht gut genug erklärt. Man versteht nicht, wie Timsort dies hier feststellt und wie es dann mit den gespiegelten Bereichen weitermacht. Vielleicht können die Autoren des Artikel diesen Abschnitt verständlicher formulieren. Die Funktionsweise von Timsort, kann man so aus dem Artikel definitiv nicht verstehen. --77.22.10.5 17:31, 25. Nov. 2023 (CET)Beantworten