Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
Delphi 2005 Personal
|
Fehlerhafter Bitonicsort Algorythmus
8. Dez 2007, 23:28
Schon wieder ich...
Delphi-Quellcode:
procedure bitonicsort1(var a:tintarr;var l,r:integer;image:timage);
procedure bitonicmerge(var a:tintarr;var l,r:integer;var asc:boolean);
var
q,k,i,x:integer;
begin
if l<r then
begin
q:=(l+r) div 2;
k:=q-l+1;
for i:=l to q do
if a[i]>a[i+k]=asc then
begin
exchange(a[i],a[i+k]);
drawgraph(a,image,bmp);sleep(wait);
end;
bitonicmerge(a,l,q,asc);
x:=q+1;
bitonicmerge(a,x,r,asc);
end;
end;
procedure bitonicsort1tmp(var a:tintarr;var l,r:integer;var asc:boolean);
var
q,x:integer;
m,n:boolean;
begin
if l<r then
begin
q:=(l+r) div 2;
x:=q+1;
m:=true;
bitonicsort1tmp(a,l,q,m);
n:=false;
bitonicsort1tmp(a,x,r,n);
bitonicmerge(a,l,r,asc);
end;
end;
var
m:boolean;
begin
m:=true;
bitonicsort1tmp(a,l,r,m);
end;
Das ist der Übeltäter. Ich bekomme keine Exception, jedoch sieht das Ergebnis wie im angehängen Screenshot aus. Könntet ihr da mal drüberschauen?
Die x-Koordinate stellt dabei das Elementindex dar, die y-Koordinate den Inhalt des Elements.
Grüße,
Frank.
Frank Dumont
|
|
Zitat
|