![]() |
Fehlerhafter Bitonicsort Algorythmus
Liste der Anhänge anzeigen (Anzahl: 1)
Schon wieder ich... :P
Delphi-Quellcode:
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? :)
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; Die x-Koordinate stellt dabei das Elementindex dar, die y-Koordinate den Inhalt des Elements. Grüße, Frank. |
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