Дополнить процедуру сортировки подсчётом количества сравнений С - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Вещественный массив состоит из значений диапазона от -5 до 5. Направление сортировки: по убыванию. (Сортировка методом «пузырька».) Помогите, пожалуйста,

дополнить процедуру сортировки подсчётом количества сравнений С и обменов Ob. Вывести эти значения на экран в данной процедуре.

Дополнить функцию сортировки подсчётом количества сравнений С и обменов Ob. Вывести эти значения на экран в данной функции.

Решение задачи: «Дополнить процедуру сортировки подсчётом количества сравнений С»

textual
Листинг программы
procedure SortP (var a:massiv; n:integer);
var i,k,C,Ob: integer;b: real;
begin
C:=0;
Ob:=0;
for k:=n-1  downto 2 do
for i:=1 to k do
 begin
  inc(C);
  if a[i]<a[i+1] then
   begin
    inc(Ob);
    b:=a[i];
    a[i]:=a[i+1];
    a[i+1]:=b;
   end;
  end;
writeln('Количество сравнений=',C);
writeln('Количество обменов=',Ob;
end;

Объяснение кода листинга программы

  1. В процедуре SortP объявлены переменные a, n, i, k, C, Ob и b.
  2. Переменная C инициализируется значением 0, а переменная Ob инициализируется значением 0.
  3. Затем происходит цикл for, который выполняется для каждого элемента k в массиве a, начиная с индекса n-1 и до индекса 2.
  4. Внутри цикла выполняется еще один цикл for, который проходит по каждому элементу i от 1 до k.
  5. В начале внутреннего цикла увеличивается значение переменной C на 1.
  6. Затем проверяется условие if a[i]<a[i+1]. Если это условие истинно, то увеличивается значение переменной Ob на 1.
  7. После этого присваивается значение b элементу a[i].
  8. Значение a[i] заменяется на значение a[i+1].
  9. Значение a[i+1] становится значением b.
  10. После окончания внутреннего цикла, значение переменной C выводится на экран вместе с значением переменной Ob.
  11. Конец процедуры.

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы