Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: TStrings mischen nach Fisher-Yates

  Alt 21. Jan 2011, 19:32
Das reicht voll und ganz aus.
Delphi-Quellcode:
procedure FisherYatesShuffle( x : TStrings );
  var
     i : Integer;
  begin
    x.BeginUpdate;
    try
      for i := x.Count - 1 downto 1 do
        x.Exchange( i, random( i + 1 ) );
    finally
      x.EndUpdate;
    end;
  end;
Und ob es nun wegen dem Assert rummst oder man eine Exception selber schmeißt ist egal, da auch ohne das Gerafffel automatisch eine Exception hochpoppt, wenn x keine gültige Instanz hat.
Also kann man das bei solch hochkomplexen Routinen auch gleich weglassen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat