Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Array Sortierung + random der höchsten werte

  Alt 4. Jul 2007, 19:02
Hallo,

du kannst das Array mittels BubbleSort (absteigend) sortieren und nach Feststellung der Größe n des gewünschten Array-Abschnitts den Index des zufälligen Items per Random(n) bestimmen.

Delphi-Quellcode:
// uses Types;
procedure BubbleSort(var ida: TIntegerDynArray);
var
  i, iInner, iOuter: Integer;
begin
  // vom zweiten bis zum letzten Eintrag
  for iOuter := Succ(Low(ida)) to High(ida) do
    // für alle Einträge unterhalb des aktuellen
    for iInner := Pred(iOuter) downto Low(ida) do
      if ida[iInner] > ida[Succ(iInner)] then
      begin // Vertauschen um Teilvektor zu ordnen
        i := ida[Succ(iInner)];
        ida[Succ(iInner)] := ida[iInner];
        ida[iInner] := i;
      end else Break; // Teilvektor ist sortiert
end;
Grüße vom marabu
  Mit Zitat antworten Zitat