![]() |
Direktes Sortieren mit Straightinsertion
Hallo, erstmal sei gesagt dass ich nicht viel Ahnung von Delphi also verflucht mich nicht wenn ich irgendwelchen Unsinn schreibe.
Ich soll mit straightinsertion ein programm schreiben dass ein element sofort wenn ich es hinzufüge in eine liste einordnet. irgendwie soll ich das ganze auch noch mit zeigern machen. also wie ich das mit den zeigern machen soll hab ich so oder so keinen plan von, ich weiß nicht mal wie ich ne zahl direkt einordnen soll. ich bin bisher soweit ein programm zu haben das 10 zahlen die ich per edits einlese per insertion sort sortiert (die schritte lass ich über ein stringgrid ausgeben). nun: wie kann ich jetzt ein element in die liste einsortieren lassen OHNE diese komplett neu zu sortieren. und hat jemand ne idee mit den zeigern? Gruß Uni So sieht mein Programm bisher aus:
Code:
Bitte helft mir, ich habe wirklich keinen Plan!
procedure TForm1.DoSort1Click(Sender: TObject);
var i : integer; //Zähler max : integer; //Maximale Zahlenanzahl zs : real; //Zwischenspeicher für ne Zahl Feld : array [0..9] of real; j: integer; x, y : integer; //Zähler für GidAusgabe begin y := 0; max := 9; for i := 0 to max do sorted.Items.Delete(0); for i := 0 to change.RowCount do change.RowCount := change.RowCount - 1; for i := 0 to max do Feld[i] := StrToInt(unsorted.Items.Strings[i]); for x := 0 to 9 do change.Cells[x,y] := FloatToStr(Feld[x]); change.RowCount := change.RowCount+1; inc(y); for i := 1 to max do begin zs := Feld[i]; j := i-1; while (zs < Feld[j]) and (j >= 0) do begin Feld[j+1] := Feld[j]; dec(j); for x := 0 to 9 do change.Cells[x,y] := FloatToStr(Feld[x]); change.RowCount := change.RowCount+1; inc (y); end; Feld[j+1] := zs; end; for i := 0 to max do sorted.Items.Add(FloatToStr(Feld[i])); change.RowCount := change.RowCount - 1; counter.Text := inttostr(change.RowCount); end; procedure TForm1.Hinzufuegen1Click(Sender: TObject); begin unsorted.items.add(edit1.text); unsorted.items.add(edit2.text); unsorted.items.add(edit3.text); unsorted.items.add(edit4.text); unsorted.items.add(edit5.text); unsorted.items.add(edit6.text); unsorted.items.add(edit7.text); unsorted.items.add(edit8.text); unsorted.items.add(edit9.text); unsorted.items.add(edit10.text); end; |
:hi: und herzlich willkommen bei uns,
Daniel, unser Gott (Admin) :lol:, hat mal ein Tutorial zu Sortierverfahren geschrieben. U.a. hat er auch den Insertion-Algo genauer betrachtet. Hoffentlich hilft Dir das weiter, ansonsten gibt es noch viel mehr Hilfe. Hier nachlesen: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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 by Thomas Breitkreuz