Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bubblesort an Liste anpassen (https://www.delphipraxis.net/83785-bubblesort-liste-anpassen.html)

wendel 6. Jan 2007 13:05


Bubblesort an Liste anpassen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey Leutz, ich bräuchte einen Tipp, wie ich in eine vorhande Liste den Bubblesort anpassen könnte ;)
Delphi-Quellcode:
procedure BubbleSort(Items: TStrings);
var
  Element : TElement;
  done: boolean;
  i, n: integer;
  Dummy: string;
begin
  n := Items.Count;

  repeat
    done := true;
    for i := 0 to n - 2 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;



procedure TFListe.Button1Click(Sender: TObject);
begin
BubbleSort(Listbox1.Items);
end;
Anstelle der Listbox verwenden wir ein TStringGrid ;/
Ich hänge mal die ganze Datei an, wer Lust hat, kann es sich ja anschauen und vielleicht noch Vorschläge geben ;)
Bin noch ziemlich neu in Delphi, also habt Gnade ^^
Es ist eine List, hat zwei Units, eine mit OOP. Ihr könnt sie ruhig testen ^^

Klaus01 6. Jan 2007 13:14

Re: Bubblesort an Liste anpassen
 
Hallo,

nach welcher Spalte willst denn Du sortieren?

Ansonsten ist auch TStringGrid.rows vom Typ TStrings
und sollte also auch von Deiner BubbleSort Routine verarbeitet werden können.
Es werden dann aber die ganzen Zeilen verglichen.

Grüße
Klaus

Gausi 6. Jan 2007 13:29

Re: Bubblesort an Liste anpassen
 
Ich weiß nicht, ob du es irgendwann irgendwem mal glaubst, aber du musst halt den Bubblesort, der in aller Regel auf einer Array-Struktur arbeitet (so auch hier) so umbauen, dass er auf einer Listenstruktur arbeitet. Statt die Indizes des Arrays zu benutzen, musst du halt die Vorwärts/Rückwärtszeiger deiner Liste bemühen, um durch die Struktur zu laufen und Vertauschungen vorzunehmen. Das ist etwas hakelig, und mit Copy&Paste kommt man nicht viel weiter, weil eine sortierte Liste gegenüber einer unsortierten eigentlich keine Vorteile liefert. Deswegen werden die Dinger relativ selten sortiert, und man findet nicht so oft Code dafür ;-)
Oder du kloppst deine Liste in die Tonne und arbeitest mit den Strukturen, die die VCL so verwendet. Die heißen zwar auch TList o.ä., sind aber keine verketteten Strukturen wie deine Liste, sondern ähneln eher Arrays.

P.S.: Solltest du von den verlinkten Beiträgen nichts wissen, weil du doch jemand anderes bist: Tschuldigung :D.

wendel 6. Jan 2007 14:28

Re: Bubblesort an Liste anpassen
 
das ist leichter gesagt als getan ^^
aber ich nehme mir mal zeit heute. danke für den tipp, aber die liste werde ich nicht in die tonne treten ^^
mit den beiden posts habe ich im übrigens nichts zu tun, aber ich frage mich, woher er die gleiche liste hat Oo
die liegt nähmlich auf einem schulserver Oo

gruß
wendel

Thorben_K 6. Jan 2007 15:58

Re: Bubblesort an Liste anpassen
 
DA ich grade genau das selbe gesucht habe, bin ich auf das hier gestossen

Klick

vll hillft es dir ja

wendel 6. Jan 2007 16:06

Re: Bubblesort an Liste anpassen
 
Hey vielen Dank, dass ist sehr hilfreich ;)
dieser thread könnte in open source evt. verschoben werden, ist ja praktisch fertig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 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