![]() |
Delphi-Version: 5
Sortierverfahren für Liste
Hallo Leute,
Ich soll im Informatikunterricht eine Präsentation über "Sortierverfahren" erstellen. Unter anderem gibt es da das Thema "Sortierverfahren mit Listen". Ich bin mir nicht sicher, welcher von den vieren funktioniert: 1. Merge Sort 2. Quick Sort 3. Insertion Sort 4. Bubble Sort Allerdings bin ich mir ziemlich sicher, dass der Bubble Sort nicht klappt. Ich soll auch selber einen Sortieralghorithmus schreiben. Könnt ihr mir einen Tipp geben, welcher der einfachste und sinnvollsten ist? LG, Gucci |
AW: Sortierverfahren für Liste
Zitat:
|
AW: Sortierverfahren für Liste
"Der Bubblesort ist ziemlich einfach - grundsätzlich funktionieren alle der oben aufgeführten Sortieralgorithmen (wir haben damals Arrays und keine Listen verwendet). "
Wir nehmen jetzt Listen durch und sollen diese sortieren. Unser Lehrer hat gesagt, dass nicht alle von den vieren funktionieren. |
AW: Sortierverfahren für Liste
TList oder verkettete Listen? Das ist ein riesiger Unterschied im Bezug auf Sortierung.
|
AW: Sortierverfahren für Liste
Zitat:
|
AW: Sortierverfahren für Liste
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe immer noch ein Programm rumliegen, wo ich mit Sortieralgos gespielt habe *in erinnerungen schwelg* :stupid:
Anhang 33901 (PS: Rechts sind gerade die Daten von BubbleSort dargestellt, nicht das noch einer meckert, dass es nicht zum MergeSort passt ;)) |
AW: Sortierverfahren für Liste
Zitat:
|
AW: Sortierverfahren für Liste
Weil es gerade so durch die Blogs geht::)
|
AW: Sortierverfahren für Liste
OK, bei verketteten Listen machen nur die Sortieralgorithmen Sinn, die die Liste von vorn nach hinten (oder andersherum) abarbeiten. Dinge wie "in die Mitte pieksen und vergleichen" funktionieren nicht, da man nicht weiß, wo die Mitte ist.
|
AW: Sortierverfahren für Liste
Auch wenns eine verkettete Liste ist, macht das keinen Unterschied, auch nicht in der Laufzeitkomplexität - Die Algorithmen lassen sich daran anpassen.
Auf jeden Fall ist die Aussage des Lehrers, dass "einer der Algorithmen nicht funktioniert", falsch. greetz Mike |
AW: Sortierverfahren für Liste
Zitat:
Entweder ist die Beschreibung von "funktioniert nicht" unvollständig (Wahrscheinlichkeit 1/3 geschätzt) und/oder (auch) dieser sog. "Lehrer" ist inkompetent (Wahrscheinlichkeit 4/5 geschätzt). Gruß, blauweiss |
AW: Sortierverfahren für Liste
Mh, schon lange nicht mehr mit gearbeitet ... aber auf dem von mir geposteten Screenshot sieht man ja in der ComboBox rechts, dass "MergeSort (VL)" markiert ist. VL steht dabei für verkettete Listen. Es ist eine spezielle MergeSort-Implementation, die dann - im Gegensatz zur normalen Version - sogar in-place arbeitet :-D In der normalen Version ist MergeSort für verkettete Listen ebenfalls suboptimal.
|
AW: Sortierverfahren für Liste
Zitat:
|
AW: Sortierverfahren für Liste
Dann kann ich aber gleich auf TList ausweichen.
|
AW: Sortierverfahren für Liste
Zitat:
|
AW: Sortierverfahren für Liste
Zitat:
|
AW: Sortierverfahren für Liste
Insertionsort und Bubblesort lassen sich sehr einfach auf Listen implementieren. Hier werden immer nur benachbarte Elemente verglichen und vertauscht - kein Problem bei Listen.
Bei Quicksort laufen zwei "Zeiger" von vorne und hinten durch die Datenstruktur und vertauschen ggf. die Werte an den beiden Positionen - kein Problem mit Listen. Auch der rekursive Schritt ist mit Listen kein Problem. Mergesort ist das einzige, wo man etwas mehr nachdenken könnte - hier kommt es auch auf die Variante an, die verwendet werden soll. Generell sollte aber der natürliche Mergesort (das ist die Variante, die Vorsortierungen berücksichtigt) aber auch mit Listen gehen - und da geht auch das mischen ohne zusätzlichen Speicher. (Man kann auch Arrays in Linearzeit auf konstantem Platz mischen, aber das ist nicht ganz trivial) Wenn in der Liste noch ein Heapsort aufgeführt wäre, dann würde ich sagen: Der geht nicht (ohne weiteres) mit Listen. Wenn dann würde sich da ein Binärbaum anbieten. |
AW: Sortierverfahren für Liste
Okay!
Danke für eure Hilfe! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz