Einzelnen Beitrag anzeigen

Benutzerbild von whiteshark
whiteshark

Registriert seit: 4. Dez 2003
Ort: Cottbus
222 Beiträge
 
Delphi 2005 Personal
 
#1

Probleme mit Bubble-Sort und KO

  Alt 5. Mär 2005, 17:52
Moin Leute,
ich stehe mal wieder vor einem Problem *heul*

Delphi-Quellcode:
function bubble (var a:array of integer):integer;
var j,w,laenge:integer;
begin
 laenge:=form1.Memo1.Lines.Count;
 //setlength(a, laenge);
 for j:=laenge downto 1 do
        begin
        for w:=2 to j do
                begin
                if (a[w-1]>a[w]) then vertausch(a[w-1],a[w]);
                end;// end of w-for-schleife
        end; // end of j-for-schleife
end; // end of function bubble


function aus (var a:array of integer) :integer;
var j:integer;
begin
laenge:=form1.Memo1.Lines.Count;
for j:=1 to laenge do
        begin
        form1.memo2.Lines.Add(inttostr(a[j]));
        end;
end; // end of function aus

Delphi-Quellcode:
procedure TForm1.BubbleButtonClick(Sender: TObject);
var data: array of integer;
var i:integer;
begin
laenge:=memo1.lines.count;
setlength(data,laenge);
//ein(data);
laenge:=form1.Memo1.Lines.Count;
 for i:=1 to laenge do
  data[i]:=strtoint(form1.Memo1.Lines.Strings[i-1]);
von:=gettickcount;
bubble(data);
bis:=gettickcount;
aus(data);
summe:=bis-von;
BubbleLabel.Caption:='';
Das sind meine Proceduren. Wenn ich die nun kompiliere bringt er mir immer einen Fehler. Zufallszahlen gehen, aber wenn ich sortiere ist die letzte Zahl immer eine "18", egal ob die im zu sortieren Teil drin ist oder nicht. Wie kann das passieren? Und wie kann ich Stack-Überläufe verhindern, wenn ich 2-mal 65.000 Zahlen sortiere bringt er mir immer den Fehler "Stack-Überlauf".

Wer kann mir helfen?
Men are born ignorant, not stupid; they are made stupid by education. - Bertrand Russell

I cannot teach anybody anything, i can only make them think. - Socrates
  Mit Zitat antworten Zitat