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.