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.