Autor |
Beitrag |
läpi
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 06.09.06 08:25
hallo liebe freunde
ich soll in meinem programm zahlen in einer memo ausgeben dies habe ich auch geschafft.
allerdings soll ich jetzt diese zahlen per buttondruck nun sortieren und das alles nicht mit bubblesort oder sowas sondern mit einer selbst programmierten sortierung kann mir da jemand helfen ?
danke
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Mi 06.09.06 08:29
äh, du sollst ohne sortier-algo sortieren?!
|
|
läpi 
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 06.09.06 08:35
joa
aber wenn du einen guten algo kennst der recht einfach ist kannst du mir den schreiben?
|
|
Gausi
      
Beiträge: 8549
Erhaltene Danke: 478
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 06.09.06 08:57
Einfach sind z.B. Bubblesort, Sortieren durch Auswahl, Sortieren durch Einfügen.
Schwieriger sind Heapsort, Mergesort, Quicksort.
Schwachsinnig ist Bogosort.
Fast alles weitere, was man sich so ausdenken kann, basiert im Wesentlichen auf diesen Algorithmen. Es mag zwar noch ein paar andere Verfahren geben, aber das sind imho die gängigsten.
Zu allen (außer evtl. dem letzten) gibt es hier im Forum Threads und fertigen Quelltext.
_________________ We are, we were and will not be.
|
|
läpi 
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 06.09.06 09:01
jo habe aber nochmal nachgefragt wir sollen wirklich ohne algo das machen
sprich mit eigenen variabelen die dann jedes zeile in meiner memo(dort gebe ich die zahlen aus)
miteinander vergleicht und dann die zahlen der reihenfolge nach ausgibt
|
|
DaKirsche
      
Beiträge: 187
Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
|
Verfasst: Mi 06.09.06 09:03
Darfst du nun einen Sortieralgorythmus verwenden oder nicht?
Also wenn du einen verwenden darfst, dann mache doch folgendes :
Prüfe, für die Anzahl der Zahlen - 1, ob die folgende Zahl kleiner ist und vertausche die gegebenenfalls.
Nehmen wir an, du tippst in jeder Zeile deines Memos eine Zahl und gibst insgesamt 100 Zahlen ein.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TForm1.SortMemoList(); var ZahlenArray : array [0..100] of Integer; x,y : Integer; TempInt : Integer; Anzahl : Integer; begin Anzahl := Memo1.Lines.Count; For x := 0 to (Anzahl - 1) do begin ZahlenArray[x] := StrToInt(Memo1.Lines[x]); end; For x := 0 to (Anzahl - 2) do begin For y := 0 to (Anzahl - 2) do begin if ZahlenArray[y] > ZahlenArray[y+1] then begin TempInt := ZahlenArray[y+1]; ZahlenArray[y+1] := ZahlenArray[y]; ZahlenArray[y] := TempInt; end; end; end; For x := 0 to Anzahl -1 do begin Memo2.Lines.Add(IntToStr(ZahlenArray[x])); end;
end; |
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
läpi 
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 06.09.06 09:07
nein ich darf keinen verwenden ich soll einfach jede zeile mit der folgenden vergleichen wenn also die erste zahl höher ist als die nächste sollen die zahlen getauscht werden
ist die nächste zahle wierder höher muss wieder getauscht werden ist die zahl niedriger soll sie stehen bleiben und die nächste zahl muss überprüft werden
ALSO OHNE ALGO
nur mit einfachen variabeln die sich die zahlen merken
|
|
Miri
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Mi 06.09.06 09:09
also,was du erklärst, ist ein algo und (wenn ich jetzt nicht total mitm schädel vor die wand gelaufen bin) is das bubble-sort...
|
|
Gausi
      
Beiträge: 8549
Erhaltene Danke: 478
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 06.09.06 09:32
Jep, wenn man um diese Erklärung noch ein "Wiederhole solange, bis in einem Durchlauf keine Vertauschung mehr aufgetreten ist" drumrum packt, dann ist das Bubblesort.
Dass man das direkt auf den Einträgen in der Memo machen soll, wobei man ständig die darin enthaltenen Strings in Zahlen umwandeln muss, ist mir schleierhaft. Ebenso unverständlich ist es, dass man das Verfahren so streng an die Ausgabe koppeln soll.
Da wird mal wieder schlechter Programmierstil gelehrt...
_________________ We are, we were and will not be.
|
|
DaKirsche
      
Beiträge: 187
Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
|
Verfasst: Mi 06.09.06 09:39
und wenn du es so kompliziert machen sollst, dann löse doch einfach die Schleife auf....
dann hast du nur einen langen Quelltext, der dasselbe macht, wie der kurze mit Algo.
|
|