Diskussion:Timsort
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))
- 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)
- Ich bin mir sicher, dass er eine (veraltete aber offizielle) Java-Version verwendet hat. --Flashspys (Diskussion) 20:59, 12. Mai 2015 (CEST)
- 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)
Defekter Weblink[Quelltext bearbeiten]
Der folgende Weblink wurde von einem Bot („GiftBot“) als nicht erreichbar erkannt. |
---|
|
- http://hg.openjdk.java.net/jdk7/tl/jdk/rev/bfd7abda8f79
- Vielleicht ist eine archivierte Version geeignet: archive.org * webcitation.org
– GiftBot (Diskussion) 09:01, 2. Feb. 2016 (CET)
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)
- 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)