Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Algotithmus für Permutationen?

  Alt 31. Dez 2004, 12:58
Der Code war nur so als Ansatz gedacht. Die Idee dahinter ist die vom Selectionsort, da kannst du was in den Tutorials drüber nachlesen. Ich habe ihn selbst nicht getestet.

Ich glaube aber, dass ich einen wichtigen Fehler gesehen habe.
Es sollte so etwas besser gehen:

Delphi-Quellcode:
Function SageMirDenTyp(var list: tDynIntegerArray): tdynintegerArray;
var
cnt,i,j,max,wo: integer;
begin
cnt:= length(list);
setlength(result,cnt);

for i:= 0 to cnt-1 do
begin
max:= list[0];
wo:=0;
   for j:= 1 to cnt-1 do
   begin
     if list[j] > max then
     begin
     max:= list[j];
     wo:=j;
     // list[j]:=0; Eindeutig an der falschen Stelle
     end;
   end;
result[i]:=wo;
list[wo]:=0; // Jetzt erst ist sicher, dass dieser Wert nicht mehr benötigt wird.
end;
Natürlich besteht die übergebene List nachher nur noch aus Nullen, wenn dir das nicht gefällt, musst du noch eine Kopie erstellen.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat