Учитель написал ** доске написал код процедуры сортировки ** трех языках (см. рисунок), а...

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

Учитель написал на доске написал код процедуры сортировки на трех языках (см. рисунок), а также массив из 12 целых чисел, который надо отсортировать: 0, 10, 3, 7, 2, 6, 11, 4, 5, 8, 1, 9. Ваша задача: определить, сколько перестановок будет сделано в процессе сортировки. Одна перестановка — обмен местами двух элементов. В качестве ответа выведите одно целое число.
Представлен код на языке Python; Pascal; C++


image
image
image

Информатика (298 баллов) | 63 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Переписал программу на современный паскаль, введя трассировочную выдачу.

// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=Arr(0,10,3,7,2,6,11,4,5,8,1,9); a.Println; Writeln;
  var k:=0;
  for var i:=0 to a.Length-1 do
    for var j:=0 to i-1 do
      if a[j]>a[i] then begin Swap(a[i],a[j]); k+=1; a.Println end;
  Writeln('Перестановок: ',k)
end.

Результаты
0 10 3 7 2 6 11 4 5 8 1 9

0 3 10 7 2 6 11 4 5 8 1 9
0 3 7 10 2 6 11 4 5 8 1 9
0 2 7 10 3 6 11 4 5 8 1 9
0 2 3 10 7 6 11 4 5 8 1 9
0 2 3 7 10 6 11 4 5 8 1 9
0 2 3 6 10 7 11 4 5 8 1 9
0 2 3 6 7 10 11 4 5 8 1 9
0 2 3 4 7 10 11 6 5 8 1 9
0 2 3 4 6 10 11 7 5 8 1 9
0 2 3 4 6 7 11 10 5 8 1 9
0 2 3 4 6 7 10 11 5 8 1 9
0 2 3 4 5 7 10 11 6 8 1 9
0 2 3 4 5 6 10 11 7 8 1 9
0 2 3 4 5 6 7 11 10 8 1 9
0 2 3 4 5 6 7 10 11 8 1 9
0 2 3 4 5 6 7 8 11 10 1 9
0 2 3 4 5 6 7 8 10 11 1 9
0 1 3 4 5 6 7 8 10 11 2 9
0 1 2 4 5 6 7 8 10 11 3 9
0 1 2 3 5 6 7 8 10 11 4 9
0 1 2 3 4 6 7 8 10 11 5 9
0 1 2 3 4 5 7 8 10 11 6 9
0 1 2 3 4 5 6 8 10 11 7 9
0 1 2 3 4 5 6 7 10 11 8 9
0 1 2 3 4 5 6 7 8 11 10 9
0 1 2 3 4 5 6 7 8 10 11 9
0 1 2 3 4 5 6 7 8 9 11 10
0 1 2 3 4 5 6 7 8 9 10 11
Перестановок: 28

(150k баллов)