Быстрая сортировка, необходим счетчик перестановок - PascalABC.NET

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

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

Куда в этой программе неоходимо вставить счетчик перестановок? и потом вывести его.

Решение задачи: «Быстрая сортировка, необходим счетчик перестановок»

textual
Листинг программы
program n1;
 
const
  n = 7;
 
var
  i, j, c, k4: integer; 
  a: array[1..n] of integer;
 
var
  Counter: Integer := 0;
 
procedure qSort(nStart, nEnd: integer);
var
  L, R, c, X, k3, k4: integer;
begin
  k3 := 0;
  if nStart >= nEnd then Exit;
  L := nStart;
  R := nEnd;
  X := A[(L + R) div 2];
  while L <= R do
  begin
    while a[L] < X do L := L + 1;
    while a[R] > X do R := R - 1;
    if L <= R then begin
      
      c := A[L]; a[L] := A[R];A[R] := c; Inc(Counter); // В момент совершения перестановки и увеличиваешь счетчик
      L := L + 1;R := R - 1;
    end;
  end;
  
  qSort(nStart, R);
  qSort(L, nEnd);
  
end;
 
begin
  
  writeln('Введите массив');
  for i := 1 to n do
    read(a[i]);
  qSort(1, n);
  for j := 1 to n do 
    write(a[j], ' '); writeln;
  writeln('Перестановок:', Counter);
  
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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