![]() |
Sortiermöglichkeiten ?!
Hiho alle,
so ich melde mich seit längerem mal wieder. Sorry aber hab zuviel mit der Schule zu tun! Zu meiner Frage: Und zwar schreiben wir diese Woche eine Informatik Klausur unter anderem über das Sortieren in Delphi! Dazu haben wir den Bubble Sort und den liear Sort kennen gelernt! (auch den Quick Sort angerissen!) - Wäre jemand von euch so nett und könnte mir ausführlich oder weniger ausführlich die 2 (3) Sortiermöglichkeiten genauer beschreiben. Also was die Unterschiede zwischen denen sind und welche Schleifen man am besten einsetzt (if, while etc.) Es wär echt sau nett, wenn mir das jemand erklären könnte, da ich das nicht so richtig verstanden habe! bis dann Trouble_Maker PS: Das Sortieren müssen wir dann auch in eine mit Pointer gesteuerte Datenbank einbauen |
Re: Sortiermöglichkeiten ?!
Moin Trouble Maker,
hast Du schon mal in der Code Library bzw. in den Tutorials nachgeschaut? Dort sind diverse Sortierverfahren beschrieben. |
Re: Sortiermöglichkeiten ?!
Hiho
Oh cool danke. Hab ich garnicht dran gedacht! Doch leider habe ich die Sortiermöglichkeit "linear sort" nicht gefunden! Ist die dabei und hat nur einen anderen Namen ?!? thx Trouble_Maker |
Re: Sortiermöglichkeiten ?!
Beim linearen Sortieren fängt der Sortierer unten an und läuft mit jedem Schritt eins weiter nach oben. Bei jedem Schritt schiebt er die derzeitige Zahl so lange nach unten, bis die nächste Zahl weiter unten kleiner/größer ist. Hört sich etwas seltsam an - ich demonstrier es an einem Beispiel:
Das ist die Liste: 9 1 3 7 4 2 6 Der erste Schritt betrifft die zweite Zahl von unten den 2er. Der wird so lange nach unten geschoben, bis er auf eine kleiner Zahl stößt - er wird unter den 6er geschoben: 9 1 3 7 4 6 2 Jetzt kommt die nächste Zahl dran: Die dritte von unten, also der 4er. Der wird unter den 6er geschoben, weil die 4 ja kleiner ist, bleibt aber dann dort weil sie größer ist als die 2: 9 1 3 7 6 4 2 Danach 9137642 - 9176432 - 9764321 - 9764321 - und das wars dann. In meinem Quelltext sieht das so aus: for i:= 1 to length(speicher) do begin hilf := speicher[i]; j:= i-1; repeat if hilf < speicher[j] then begin speicher[j+1] := speicher[j]; j := j-1; end; until hilf >= speicher[j]; speicher[j+1] := hilf; end; Kurze Erleuterung der Begriffe: i,j,hilf: integer speicher: der zu sortierende Array (ein dynamischer, deshalb fängt er bei 0 an) Ich hoffe das hilft dir, hab dieses Jahr auch viel zu tun für Informatik ...viel Glück |
Re: Sortiermöglichkeiten ?!
Hi
@ Ryan: Vielen Dank für deinen Beitrag! Hat mir echt geholfen! Aber eine Frage habe ich noch: Welche Methode von schleifen ist denn für das Sortieren am sinnvoll´sten ?!? Oder ist das im Prinzip egal? (While, if-then, repeat-until) Wenn ich noch Fragen habe melde ich mich nochmal! cu Trouble_Maker |
Re: Sortiermöglichkeiten ?!
Zitat:
|
Re: Sortiermöglichkeiten ?!
Ich würde mal sagen eine for - Schleife, aber ich glaube nicht, dass das sonderlich wichtig ist:
Immerhin wird diese Sortiermethode nicht mehr wirklich eingesetzt. |
Re: Sortiermöglichkeiten ?!
Zitat:
danke nochmal cu Trouble_Maker |
Re: Sortiermöglichkeiten ?!
Hiho alle...
1. wäre nett, wenn mir jemand meine Frage aus meinem letzten Thread beantworten könnte! 2. habe noch eine Frage: (ich weiss, dass man eigentlich zu jeder Frage nen neuen Post machen soll, aber es passt nunmal hier rein!) Es fallen die Begriffe "Sortieren durch direkte Auswahl" und "Sortieren durch direktes Einfügen"! Nun möchte ich wissen, mit welchem "Fachbegriff" man diese 2 Bezeichnet! Also z.B.: -Selection Sort; - Insertion Sort; - Bubble Sort; - Shell Sort dass diese beiden Sortiermöglichkeiten nicht Bubble-Sort sind weiss ich! Aber wie heissen die mit Fachbegriff ?!? thx cu Trouble_Maker |
Re: Sortiermöglichkeiten ?!
Hoi.
Also erstmal Sortieren durch direkte Auswahl ist Selection Sort (englisch Auswahl := Selection) und Sortieren durch direktes Einfügen ist Insertion Sort (englisch Einfügen := Insertion) :thuimb: Dazu warum deine Sortiermethode nicht mehr genutzt wird...im Schulunterricht isses relativ egal, aber in großen Datensätzen sollte das schon etwas schneller gehn und da wird dann eben Merge Sort oder Quicksort benutzt. Ich bevorzuge Merge Sort. Es ist zwar meist etwas langsamer als Quicksort, aber es braucht immer gleichviele Vergleiche, wodurch die Rechenzeit für ein n-Elemente-Feld egal wie die Inhalte sortiert sind immer gleich groß ist. Bei Quicksort kanns im schlechtesten Fall ganz schön lang dauern (hab jetzt leider keine Zeiten im Kopf...kannst ja mal bei google suchen) MfG Niels |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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