Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.009 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: [Fun Code] Sleepsort

  Alt 12. Nov 2012, 13:25
Delphi-Quellcode:
uses
  DSharp.Core.Nullable, // oder Spring
  SysUtils;

function Sort(const Values: array of Integer): TArray<Integer>;
var
  i, k: Integer;
  tmp: array of Nullable<Integer>;
begin
  k := 0;
  for i in Values do
    if i > k then
      k := i;
  SetLength(tmp, k + 1);
  SetLength(Result, Length(Values));
  for i in Values do
    tmp[i] := i;

  k := 0;
  for i := Low(tmp) to High(tmp) do
    if tmp[i].HasValue then
    begin
      Result[k] := tmp[i];
      Inc(k);
    end;
end;

var
  i: Integer;
begin
  for i in Sort([5, 3, 55, 35, 6]) do
  begin
    WriteLn(i);
  end;

  Readln;
end.
Problem im Gegensatz zum zeitbasierten Array ist, dass hier Werte nur einmal vorkommen dürfen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat