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

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

Показать ответ
Ответ:
StilesStilinsky
StilesStilinsky
07.10.2020 20:06
Ну что то типо этого 
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.
0,0(0 оценок)
Ответ:
ukharitonova
ukharitonova
07.10.2020 20:06
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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота