Entwickler-Ecke
Algorithmen, Optimierung und Assembler - BubbleSort-Algorithmus
-delphin- - Fr 03.06.05 12:06
Titel: BubbleSort-Algorithmus
Also, ich würde ganz gerne 5 Labels, die grundsätzlich Zahlen von 1-6 sind, der Größe nach ordnen.
Die Labels heißen L1 - L6. Nur blöderweise verstehe ich den BubbleSort Algorithmus nicht, vielleicht kann den mir jemand mal erklären, wäre sehr nett. Ich weiß, wie der BubbleSort funktioniert, hab schon viele Threads hier und bei Wikipedia etc. gelesen, aber wirklich anwenden kann ich ihn nicht.
Thx im Vorraus,
Delphin
Moderiert von
raziel: Topic aus Sonstiges verschoben am Fr 03.06.2005 um 14:47
Narses - Fr 03.06.05 12:21
Moin!
[Delphi]N hat folgendes geschrieben: |
| Nur blöderweise verstehe ich den BubbleSort Algorithmus nicht, vielleicht kann den mir jemand mal erklären, wäre sehr nett. Ich weiß, wie der BubbleSort funktioniert, hab schon viele Threads hier und bei Wikipedia etc. gelesen, aber wirklich anwenden kann ich ihn nicht. |
Dann hast du den Algorithmus auch nicht verstanden :wink: , guckst du nochmal
hier [
http://www.delphi-forum.de/viewtopic.php?p=197199#197199].
Wenn du es damit auch nicht hinkriegst, dann zeig mal deinen Code, sonst kommen wir nicht weiter.
cu
Narses
-delphin- - Fr 03.06.05 12:46
Hm ich hab das jetzt 2mal gelesen, aber irgendwie verstehe ich es nicht so wirklich.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure BubbleSort(Items: TLabels); var done: boolean; i, n: integer; Dummy: string; begin n := Items.Count;
repeat done := true; for i := 0 to n do if Items[i] > Items[i + 1] then begin Dummy := Items[i]; Items[i] := Items[i + 1]; Items[i + 1] := Dummy;
done := false; end; until done; end; |
so ist mein Code bisher.
Zuerst habe ich Variablen festgelegt, dann die Labels in Items zählen lassen (Count) und dann von i= 0 bis n eine schleife durchlaufen lassen und die dann tauschen lassen mithilfe der Variablen Dummy.
Funktioniert aber alles nicht..
Nochmal ich habe 5 Labels, L1, L2, L3, L4, L5.
Wenn ich mithilfe des Buttons BWuerfeln gewürfelt habe, habe ich z.b. in der Reihenfolge 3-6-5-5-2 und das soll mir in einem Editfeld (EAusgabe) in der sortieren Reihenfolge ausgegeben werden.
Narses - Fr 03.06.05 12:52
Moin!
Zwei Sachen noch:
1. Wie ist die Deklaration von Items[]?
2. Du sagst, du hast den Thread 2x gelesen (OK, und nicht verstanden; was genau?), aber hast noch nicht bemerkt, dass BubbleSort 2 Schleifen hat... :gruebel:
cu
Narses
Heiko - Fr 03.06.05 12:55
Narses hat folgendes geschrieben: |
| aber hast noch nicht bemerkt, dass BubbleSort 2 Schleifen hat... :gruebel: |
Ihr/Sein Quelltext hat doch 2 Schleifen. Einmal eine for-to-do-Schleife und einmal eine repeat-until-Schleife.
Narses - Fr 03.06.05 12:57
Ahhh, oh Gott, ich bin blind... :shock: Stimmt, sorry. :wink:
cu
Narses
//EDIT: Und schon wieder muss ich mich korrigieren... man sollte nicht beim Essen im Forum sein... :wink:
Items ist als TLabels deklariert. Was also ist TLabels, mein D7pro kennt´s nicht.
-delphin- - Fr 03.06.05 13:09
TLabel ist doch die Bezeichnung für ein Label oder? oO
ich weiß gar nicht, wie Items deklariert werden sollen...
Narses - Fr 03.06.05 13:17
Moin!
Tu doch mal den Code, der deine Sortierprozedur aufruft auch hier rein, vielleicht klärt das ja.
cu
Narses
harryp - Fr 03.06.05 17:48
kurze Zwischenfrage : Warum muss es Bubble-Sort sein ??? Gibt viel effektivere und schnellere Sortieralgorithmen... :?:
Gausi - Fr 03.06.05 17:54
Ich denke, wenn man 5 Zahlen sortieren muss, die die Werte 1 bis 6 haben, um eine Auswertung für Kniffel zu machen, dann reicht Bubblesort.
harryp - Sa 04.06.05 11:53
nagut, hast recht. für 5 zahlen von 1 bis 6 wär's wirklich blöd mit quicksort oder so zu kommen...
-delphin- - Sa 04.06.05 16:41
der code, der die sortierprozedur aufruft ist einfach was mit Button1Click und dann BubbleSort (Items: TLabel) und das wars^^
Narses - So 05.06.05 02:13
Moin!
Hab mich möglicherweise nicht klar genug ausgedrückt: Ich kann mit TLabels nichts anfangen, also welche Delphi-Version benutzt du, wie ist TLabels deklariert und am besten zeigst du den gesamten Code, aus dem Stück Sortierprozedur werde ich nicht schlau, was den Fehler angeht.
cu
Narses
harryp - So 05.06.05 20:21
Also entweder steh ich jetzt auf dem Schlauch, aber wer programmiert ein Delphi-Programm, in welchem man mit Bubble-Sort sortiert, hat aber keine Ahnung was ein Label is ?!
Narses - So 05.06.05 22:01
Moin!
Man(n) Lese und Schreibe, in dieser Reihenfolge! :mahn: :wink:
Da steht nicht TLabel, sondern TLabels. Und damit kann ich nun mal nix anfangen.
Kannst du? Dann erklär´s.
cu
Narses
harryp - Mo 06.06.05 16:45
ich bin der meinung, dass er sich einfach verschrieben hat. kann mich natürlich auch irren, aber sollte bestimmt bloß "tlabel" heißen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!