Guten Morgen.
Hilfreich dürfte sein, wenn du deine array Struktur redefinierst:
Delphi-Quellcode:
type
TFlatArray = array [0..319] of integer;
TDimArray = array [0..1, 0..15, 0..9] of integer;
Procedure ShellSort(var arr: TDimArray; halfIndex: integer);
begin
// Hier musst du an den 3-dimensionale Index anpassen.
// verschoben werden immer 10-er Pakete auf der untersten Indexstufe
// ...
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a: TFlatArray;
i: Integer;
begin
for i := Low(a) to High(a) do
a[i] := Random(Length(a));
ShellSort(TDimArray(a), 0);
ShellSort(TDimArray(a), 1);
end;
Grüße vom marabu