Einzelnen Beitrag anzeigen

Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#1

Fehlerhafter Bitonicsort Algorythmus

  Alt 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.
Miniaturansicht angehängter Grafiken
unbenannt_298.jpg  
Frank Dumont
  Mit Zitat antworten Zitat