Реализации алгоритмов/Сортировка/Шелла: различия между версиями
Содержимое удалено Содержимое добавлено
Недоработка в алгоритме для Pascal |
→Object Pascal (Delphi): Добавил использование Седжвика |
||
Строка 194:
== Object Pascal (Delphi) ==
procedure ShellSort(var Arr : TReal1DArray; N : Integer);▼
incr: array [0..23] of integer = (1, 4, 10, 23, 57, 145, 356, 911, 1968, 4711,
11969, 27901, 84801, 213331, 543749, 1355339, 3501671, 8810089, 21521774,
▲ var
8548857, 157840433, 410151271, 1131376761, 2147483647);
C : Boolean;▼
G : Integer;▼
type arInt = array of integer;
I : Integer;▼
J : Integer;▼
var
Tmp : Double;▼
begin▼
len: Integer;
cur_inc: integer;
len := Length(Arr) - 1;
cur_inc := 0;
while 3 * incr[cur_inc + 1] <= Length(Arr) do
inc(cur_inc);
repeat
g := incr[cur_inc];
repeat
j := i
c :=
if arr[j] >= arr[j
c :=
Arr[j] :=
Arr[j+g] :=
dec(j,
until not ((j >= 0) and
until not (i <=
▲ inc(i);
▲ until not (g>0);
▲ end;
== PHP ==
|