Sortierverfahren Bubblesort


  • Eisbude
  • 900 Aufrufe 4 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sortierverfahren Bubblesort

    Hallo,
    weiß jemand wie man das Sortierverfahren Bubblesort in Delphi programmiert und wie man die einzelnen Quellzeilen wortwörtlich ausspricht?
    Danke im voraus
  • nach 10sec. googlen das hier gefunden:

    const TableSize = 20; //Array-Obergrenze
    type TableArray = array[1..TableSize] of Byte;

    procedure BubSort(var Table: TableArray);
    var
    Run: LongInt;
    Index: LongInt;
    x: Byte;
    begin
    for Run := 2 to TableSize - 1 do
    for Index := TableSize downto Run do
    if Table[Index] < Table[Index - 1] then
    begin
    x := Table[Index];
    Table[Index] := Table[Index - 1];
    Table[Index - 1] := x;
    end;
    end;


    quelle:
    h**p://www.delphi-source.de/tipps/algorithmen/?id=12

    was meinst du mit wortwörtlich aussprechen ? - jetzt versteh ich nur bahnhof :rolleyes:

    und hier noch nen (fast) komplettes listing:
    h**p://www.bergt.de/workshop/delphi/html/loesung73.htm

    hoffe, dies war hilfreich genug,
    greetz KuschelBaer
    Das beliebteste Haustier der Deutschen ist und bleibt das halbe Hähnchen.
  • Hallo,
    dank dir. Einmal, laut deinem Zitat, ist es die Programmiersprache die Delphi versteht. Jedoch ist es auch meine Aufgabe , die Befehle sozusagen zuübersetzen in die "deutsche Sprache". Und da tritt nun das Problem auf. Wäre nett, wenn mir jemand dabei helfen könnte.
    Mfg
  • versuchen wir mal die Erlaeuterung:
    es handelt sich beim Bubble Sort um eine geschachtelte Schleifenfuehrung (for Run := 2 to TableSize - 1 do
    for Index := TableSize downto Run do)
    Die innere Schleife durchlaeuft ein Feld von Werten und vergleicht jeweils 2 nebeneinanderliegende Werte miteinander (if Table[Index] < Table[Index - 1] then)
    Diese beiden Werte werden, falls die if-Bedingung erfuellt ist, mittels einer Hilfsvariablen (x) ausgetauscht. Man spricht hier auch vom sogenannten Dreieckstausch( x := Table[Index];
    Table[Index] := Table[Index - 1];
    Table[Index - 1] := x; )
    Die aeussere Schleife sorgt dafuer, das dieser beschriebene Vorgang oft genug durchgefuehrt wird, bis das Wertefeld auf- oder absteigend sortiert ist. (in diesem Beispiel ist es eine aufsteigende Sortierung)

    Beim Bubble-Sort-Algorithmus muss die Anzahl der Schleifendurchlaeufe der aeusseren Schleifenfuehrung sein: Anzahl der zu sortierenden Elemente - 1
    Festzulegende Anzahl der Durchlaeufe der inneren Schleife: Anzahl der zu sortierenden Elemente -1 - Anzahl der bereits ausgefuehrten Durchlaeufe der aeusseren Schleife.