
Отсортировать массив по не убыванию методом сортировки Шелла (Pascal, и элемениы массива нужно
ввести вручную) хелп

Ответы на вопрос

Ну что то типо этого
var j,i,k,n:integer; m:array[1..1000] of integer;begin read(n,k); //Ввод элементов массива for i:=1 to n do read(m[i]); //Сортировка по возрастанию for i:=1 to k do for j:=i to k do if m[j]<m[i] then swap(m[i],m[j]); //Сортировка по убыванию for i:=k+1 to n do for j:=i to n do if m[j]>m[i] then swap(m[i],m[j]); //Вывод элементов массива for i:=1 to n do print(m[i]);end.



Program SortByShell;
const
nn=100; // максимальное количество элементов в массиве
type
Mas=array[1..nn] of integer;
procedure SortShell(n:integer; var a:Mas);
var
i,d,t:integer;
k:boolean;
begin
d:=n div 2; // начальный шаг сортировки
while d>0 do begin
k:=true;
while k do begin
k:=false;
for i:=1 to n-d do begin
if(a[i]>a[i+d]) then begin
t:=a[i]; a[i]:=a[i+d]; a[i+d]:=t;
k:=true
end
end
end;
d:=d div 2
end
end;
var
i,n:integer;
v:Mas;
begin
Write('n='); Read(n);
Writeln('Вводите элементы массива');
for i:=1 to n do Read(v[i]);
SortShell(n,v);
for i:=1 to n do Write(v[i],' ');
Writeln
end.
Пример
n=15
Вводите элементы массива
-10 -7 4 -12 -26 4 34 -29 7 -28 13 -10 44 0 -46
-46 -29 -28 -26 -12 -10 -10 -7 0 4 4 7 13 34 44


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili