Сортировка заданного массива методом быстрой сортировки - Pascal

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

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

Помогите пожалуйста разработать программу, выполняющую сортировку заданного массива методом быстрой сортировки. Тип элементов-целочисленный, кол-во 19, упорядочить по убыванию. Спасибо

Решение задачи: «Сортировка заданного массива методом быстрой сортировки»

textual
Листинг программы
  1. uses crt;
  2. const n=19;
  3. var x:array[1..n] of integer;
  4.     i:integer;
  5. procedure sort(l,r:integer); {lлевый конец масива,r-правый конец}
  6. var
  7.   i,j,x1,y1,m: integer;
  8. begin
  9.   i:=l;
  10.   j:=r;
  11.   m:=round ((l+r)/2);{средний элемент}
  12.   x1:=x[m];
  13.   repeat
  14.     while x[i]>x1 do inc(i);{пока левый больше среднего, подвигоем левый край вправо }
  15.     while x[j]<x1 do dec(j);{пока правый меньше среднего, подвигаем левый вправо}
  16.     if i<=j then {если левый и правый срослись}
  17.      begin
  18.       y1:=x[i];
  19.       x[i]:=x[j];{меняем левый и правый}
  20.       x[j]:=y1;
  21.       inc(i); {левый вправо}
  22.       dec(j); {правый влево}
  23.      end;
  24.   until i>j;{конец одной перестановки}
  25.   if l<j then sort(l,j);{рекурсивно сортируем}
  26.   if i<r then sort(i,r);{или левую или правую части}
  27. end;
  28.  
  29. begin
  30. clrscr;
  31. randomize;
  32. writeln('Исходный массив:');
  33. for i:=1 to n do
  34.   begin
  35.    x[i]:=random(50);
  36.    write(x[i]:4);
  37.   end;
  38. writeln;
  39. sort(1,n);
  40. writeln('Массив после сортировки: ');
  41. for i:=1 to n do
  42. write(x[i]:4);
  43. readln;
  44. end.

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

  1. Создается массив x из 19 целочисленных элементов.
  2. Объявляется переменная i, используемая в циклах.
  3. Описывается процедура sort с параметрами l и r, где l - левый конец массива и r - правый конец.
  4. В процедуре sort объявляются переменные i, j, x1, y1, m для использования в алгоритме быстрой сортировки.
  5. В процедуре sort вычисляется средний элемент m.
  6. Проводится итерация сравнения элементов в массиве с помощью цикла.
  7. В случае несовпадения индексов элементов, они меняются местами.
  8. После завершения цикла проверяется необходимость рекурсивной сортировки левой и правой частей массива.
  9. В основной программе инициализируется генератор случайных чисел и выводится исходный массив.
  10. Происходит вызов процедуры sort для сортировки и выводится отсортированный массив.

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


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

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

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы