PascalABC.NET(версия 3.3) Нужно изменить сортировку с обменной(** скрин.2)** сортировку...

0 голосов
121 просмотров

PascalABC.NET(версия 3.3)
Нужно изменить сортировку с обменной(на скрин.2)на сортировку вставками.
Можете изменить мою или сделать свою.Спасибо.


image
image
image

Информатика (17 баллов) | 121 просмотров
0

ничего я не менял,как там было написано с самого начала Pascal так и осталось

0

Вполне возможно что да)

0

есть разве ещё какие-то вставки?

0

ясно,тогда просто простыми вставками

Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

procedure SortInsert(a:array of integer);
// сортировка простыми вставками по убыванию
begin
  for var i:=1 to a.Length-1 do
    if a[i-1]      var (t,j):=(a[i],i-1);
        while (j>=0) and (a[j]          a[j+1]:=a[j]; j-=1
        end;
      a[j+1]:=t
      end
end;

begin
  var (m,n):=ReadInteger2('Количество строк и столбцов в массиве:');
  Writeln('*** Исходный массив ***');
  var a:=MatrRandom(m,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  // приступаем к сортировке четных строк (строк с нечетными индексами)
  var row:=1;
  while row<=m-1 do begin<br>    var v:=a.Row(row);
    SortInsert(v);
    a.SetRow(row,v);
    row+=2
  end;
  Writeln('*** Сортированный массив ***'); a.Println(4) // вывод
end.

Пример
Количество строк и столбцов в массиве: 5 9
*** Исходный массив ***
 -13 -53  35  84  72  44  76 -78 -93
 -86 -82  90 -35 -16  55 -99 -24 -63
  64 -29 -34  51  89   4  51  37  80
   7  19  81  41  34 -49  64   1 -59
  51 -80  71 -13  19   9 -90   7   6
------------------------------------
*** Сортированный массив ***
 -13 -53  35  84  72  44  76 -78 -93
  90  55 -16 -24 -35 -63 -82 -86 -99
  64 -29 -34  51  89   4  51  37  80
  81  64  41  34  19   7   1 -49 -59
  51 -80  71 -13  19   9 -90   7   6

image
(150k баллов)
0

тебе виднее,буду пытаться переделать под себя(если это возможно)

0

но и показывать учителю программу на непроходимых словах тоже глупость,очевидно же что кто делал другой

0

В данный момент бессмысленно с вами спорить,лучше это время я потрачу на изменение вашего ответа.Ещё раз спасибо