Einzelnen Beitrag anzeigen

even7

Registriert seit: 3. Feb 2007
2 Beiträge
 
#1

Visualisierung von Selectionsort bzw.Insertionsort

  Alt 4. Feb 2007, 00:21
Hoi,

Ich hab da nen bescheidenes Problem^^. Und zwar suche ich nach einer Visualisierung meiner Sortierverfahren.

Dabei möchte ich, dass die Veränderungen Schritt für Schritt in Form von wandernden Labels angezeigt werden.

Ich habe mein Fenster in etwa so aufgebaut:

Delphi-Quellcode:
<Edit1> ...<Edit10>
  -->Zahlen des Arrays Label1 Label2 Label3 ... Label10
                          <Schritt1/Button>
                          <Schritt2/Button>
                             .
                             .
                             .
                          <Schritt8/Button>
In den Labels stehen die Zahlen des Arrays. Die Zahlen, welche ausgetauscht werden im 1. Schritt des Sortierens (Selectionsort),
sollen nun anschaulich in Form der Labels, die für die zu tauschenden Zahlen stehen, ausgetauscht werden, indem die Labels "wandern" und zwar nach unten.

Am Beispiel der beiden Labels 1 und 10:

Delphi-Quellcode:
<Edit1> ...<Edit10>
  -->Zahlen des Arrays Label2 Label3 ... Label10
                          <Schritt1/Button> label1 --> <-- label10 //tauschen sich- label1 an Position von
                                                                                     //Label10 in dem die Labels über den
                                                                                     //Bildschirm "wandern"
                          <Schritt2/Button>
                             .
                             .
                             .
                          <Schritt8/Button>
Ich habe schon diverse Seiten durch forstet nach einer Möglichkeit^^.
Für eine Hilfe wäre ich sehr dankbar.

Hier noch mein Quelltext zu Selectionsort:

Delphi-Quellcode:
procedure TForm6.Button13Click(Sender: TObject);
var i, min, j, k, hilf:integer;
begin
 v_klick:=9;
  for i:=1 to 9 do
   begin
    min:=i;
     for j:=i+1 to 10 do
      if v_a[j] < v_a[min] then
       min:=j;
        hilf:=v_a[min];
         v_a[min]:=v_a[i];
         v_a[i]:=hilf;
    end;
 timer1.enabled:=true;
   for k:=1 to 10 do
    begin
     stringgrid1.cells[k-1,10]:=inttostr(v_a[k])
    end;
end;
Gruß David
Bombenspezialist-Wenn sie mich rennen sehen, bleiben sie dicht hinter mir....
  Mit Zitat antworten Zitat