{
Задача/Task:
- Сортировка Шелла / Shell Sort
Решение/Solution:
- автор/author : Дмитрий С. Кузнецов
- на основе / based on : wikipedia.org
- цена / price : $0
}
program ShellSort(INPUT, OUTPUT);
type
index = integer;
item = integer;
const
max = 34 + 1;
var
last, j, step, i, delta : index;
x : item;
h : array[1..max] of item;
begin
{ input }
for i := 1 to max do
readln(h[i]);
{ sorting }
last := max;
step := max div 2;
while step > 0 do
begin
for i := step to last do
begin
j := i;
delta := j - step;
while (delta > 0) and (h[delta] > h[j]) do
begin
x := h[delta];
h[delta] := h[j];
h[j] := x;
j := delta;
delta := j - step;
end;
end;
step := step div 2;
end;
{ output }
writeln('Номер':12, 'Значение':20);
writeln('------------------------');
for i := 1 to max do
writeln(' : ', i:2, ' : ', h[i]:9, ' :');
end.
ewoJ0JfQsNC00LDRh9CwL1Rhc2s6CgktINCh0L7RgNGC0LjRgNC+0LLQutCwINCo0LXQu9C70LAgLyBTaGVsbCBTb3J0CgnQoNC10YjQtdC90LjQtS9Tb2x1dGlvbjoKCS0g0LDQstGC0L7RgC9hdXRob3IgOiDQlNC80LjRgtGA0LjQuSDQoS4g0JrRg9C30L3QtdGG0L7QsgoJLSDQvdCwINC+0YHQvdC+0LLQtSAvIGJhc2VkIG9uIDogd2lraXBlZGlhLm9yZwoJLSDRhtC10L3QsCAvIHByaWNlIDogJDAKfQpwcm9ncmFtIFNoZWxsU29ydChJTlBVVCwgT1VUUFVUKTsKdHlwZQoJaW5kZXgJPSBpbnRlZ2VyOwoJaXRlbQk9IGludGVnZXI7Cgpjb25zdAoJbWF4ID0gMzQgKyAxOwp2YXIKCWxhc3QsIGosIHN0ZXAsIGksIGRlbHRhCTogaW5kZXg7Cgl4CQkJCQkJOiBpdGVtOwoJaAkJCQkJCTogYXJyYXlbMS4ubWF4XSBvZiBpdGVtOwpiZWdpbgoKeyBpbnB1dCB9CmZvciBpIDo9IDEgdG8gbWF4IGRvCglyZWFkbG4oaFtpXSk7Cgp7IHNvcnRpbmcgfQpsYXN0IDo9IG1heDsKc3RlcCA6PSBtYXggZGl2IDI7CndoaWxlIHN0ZXAgPiAwIGRvCmJlZ2luCglmb3IgaSA6PSBzdGVwIHRvIGxhc3QgZG8KCWJlZ2luCgkJaiA6PSBpOwoJCWRlbHRhIDo9IGogLSBzdGVwOwoJCXdoaWxlIChkZWx0YSA+IDApIGFuZCAoaFtkZWx0YV0gPiBoW2pdKSBkbwoJCWJlZ2luCgkJCXggOj0gaFtkZWx0YV07CgkJCWhbZGVsdGFdIDo9IGhbal07CgkJCWhbal0gOj0geDsKCQkJCgkJCWogOj0gZGVsdGE7CgkJCWRlbHRhIDo9IGogLSBzdGVwOwoJCWVuZDsKCWVuZDsKCXN0ZXAgOj0gc3RlcCBkaXYgMjsKZW5kOwoKeyBvdXRwdXQgfQp3cml0ZWxuKCfQndC+0LzQtdGAJzoxMiwgJ9CX0L3QsNGH0LXQvdC40LUnOjIwKTsKd3JpdGVsbignLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJyk7CmZvciBpIDo9IDEgdG8gbWF4IGRvCgl3cml0ZWxuKCcgOiAnLCBpOjIsICcgOiAnLCBoW2ldOjksICcgOicpOwoKZW5kLgo=
MTAwMDEKNzQzOQoyMjM0Ci0yMwotMzQzCjkwCi04Nwo5NDMKLTM0NDQKLTk2NQozOTQKODQzOQoyMzM0Ci0yMzQ1Ci0zNDMKNjIzCjk4NAoxMjM2CjA0MwowCi0xMDAwMQotNjc4CjU1NQo0MzQKLTUzNAotMzQyCjIyNgoyMjI3Cjg4OAo5OTkwCjEwMDAKMTAxMAoxOTE5Cjg5ODkKLTIwMjY=
10001
7439
2234
-23
-343
90
-87
943
-3444
-965
394
8439
2334
-2345
-343
623
984
1236
043
0
-10001
-678
555
434
-534
-342
226
2227
888
9990
1000
1010
1919
8989
-2026