Datenstrukturen für das Mischen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

ShuffleInts.om
   CONST
      maxlen = 32;
   VAR
      value: ARRAY maxlen OF INTEGER; (* to be shuffled *)
      len: INTEGER; (* value[0]..value[len-1] are in use *)
      j, k: INTEGER; (* indices of value *)
      randomval: REAL; (* pseudo-random out of [0..1) *)
      tmp: INTEGER; (* used during an exchange *)

*Da die Zahl der zu mischenden Zahlen nicht im voraus bekannt ist, legen wir mit maxlen eine obere Grenze fest und deklarieren entsprechend ein Array value mit maxlen Variablen.
 
*Zu beachten ist nur, daß im Algorithmus mit 1 beginnend indiziert wird, während in Oberon die Indizierung ab 0 erfolgt.
 
*Beim Einlesen merken wir uns in len die Zahl der eingelesenen Werte. Danach werden nur value[0] bis value[len-1] betrachtet. Die Variable len entspricht dem t aus dem Algorithmus.
 
*Die Variablen j und k werden analog zum Algorithmus verwendet.
 
*Die Variable randomval entspricht dem U und wird pseudo-zufällig bestimmt.
 
*Für den Austausch im Schritt P3 wird die Hilfsvariable tmp benötigt.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005