Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehlerhafter Bitonicsort Algorythmus (https://www.delphipraxis.net/104685-fehlerhafter-bitonicsort-algorythmus.html)

rawsoul 8. Dez 2007 22:28


Fehlerhafter Bitonicsort Algorythmus
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schon wieder ich... :P

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.

ULIK 9. Dez 2007 18:11

Re: Fehlerhafter Bitonicsort Algorythmus
 
Nicht daß ich jetzt eine Lösung für Dich hätte, aber der Algorithmus geht schon mit folgenden Array schief:
[1,3,3,1,2]

Vieleicht hilft's beim Debuggen.

Grüße,
Uli


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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-2025 by Thomas Breitkreuz