![]() |
Problem mit Sortieralgorithmus
HI cih bins mal wieder!
Dieses mal eine Frage zum Sortieren, soviel cih weiß heißt mein Algorithmus "mischsortieren". bei mir sollen generierte Zahlen aus einem Array in sortiert und in einem Stringrid ausgegeben werden. Allerdings erscheinen immer nur Nullen. Vielleicht findet jemand den Fehler! Meine Variablen:
Delphi-Quellcode:
die Prozedur:
var
Form1: TForm1; const anz=100000; const groesstzahl=10000; var Zahl:Array[1..Anz] of Integer; type Tzahlen = Array[1..Anz] of Integer; var Zahlen:tzahlen;
Delphi-Quellcode:
Danke!
procedure TForm1.Button3Click(Sender: TObject);
var J:Integer; procedure Mischsort(var A:tzahlen; n:Integer); procedure Mische(li, mi, re:Integer); var i, erster1, letzter1, erster2, letzter2:Integer; hilfe:tzahlen; begin erster1:= li; letzter1:=mi; erster2:=mi+1; letzter2:=re; i:=erster1; while ((a[erster1]<a[letzter1]) and (a[erster2]<=a[letzter2])) DO begin IF a[erster1] < a[erster2] then begin HILFE[i]:=a[erster1]; inc(erster1); inc(i); end else begin HILFE[i]:=a[erster2]; inc(erster2); inc(i); end; end; while a[erster1] <= a[letzter1] DO begin hilfe[i]:=a[erster1]; inc(i); inc(erster1); end; while a[erster2] <= a[letzter2] DO begin hilfe[i]:=a[erster2]; inc(erster2); inc(i); end; end; procedure Mischsortiere(links, rechts:Integer); var Mitte:Integer; BEGIN if links < rechts then begin Mitte:=(links+rechts) Div 2; Mischsortiere(links, Mitte); Mischsortiere(MItte+1, rechts); mische(links, Mitte, rechts); end; end; begin Mischsortiere(1,n); end; begin mischsort(zahlen,anz); for J:=1 to anz do grid.cells[j,3]:=inttostr(zahlen[j]); end; |
Re: Problem mit Sortieralgorithmus
Hallo,
irgendwie vermisse ich, dass das Array zahlen (bzw. A) in der Procedure Mischsort und Unterprozedur Mische überhaupt angesprochen wird.... (z.B. beim Vergleich erster1 < erster2 und dann auch dementsprechend beim Einsortieren). Irgendwo sollte wohl auch noch der Inhalt von A nach HILFE (bzw. umgekehrt) übertragen werden. Nur mal so als Pointer in die richtige Richtung... Viele Grüße, Uwe |
Re: Problem mit Sortieralgorithmus
Zitat:
ich hba eher das gefühl das da was bei reinschreiben ins stringgrid was schief läuft! |
Re: Problem mit Sortieralgorithmus
Zitat:
|
Re: Problem mit Sortieralgorithmus
Zitat:
man ist das doof, aber bubble ist mit zu langsam! |
Re: Problem mit Sortieralgorithmus
Wie wäre es, wenn du zuerst selbst deinen Code debuggst? Dann würdest du sicherlich merken, dass du zwar "Hilfe" Werte zuweist, diese aber nie benutzt und "a" nie verändert wird.
Vielleicht solltest du dir noch dieses Tutorial durchlesen (auch wenn ich nicht weiß, welchen Algorithmus du verwendest :wink: ): ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 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