Сортировка заданного массива методом быстрой сортировки - Pascal
Формулировка задачи:
Помогите пожалуйста разработать программу, выполняющую сортировку заданного массива методом быстрой сортировки. Тип элементов-целочисленный, кол-во 19, упорядочить по убыванию. Спасибо
Решение задачи: «Сортировка заданного массива методом быстрой сортировки»
textual
Листинг программы
- uses crt;
- const n=19;
- var x:array[1..n] of integer;
- i:integer;
- procedure sort(l,r:integer); {lлевый конец масива,r-правый конец}
- var
- i,j,x1,y1,m: integer;
- begin
- i:=l;
- j:=r;
- m:=round ((l+r)/2);{средний элемент}
- x1:=x[m];
- repeat
- while x[i]>x1 do inc(i);{пока левый больше среднего, подвигоем левый край вправо }
- while x[j]<x1 do dec(j);{пока правый меньше среднего, подвигаем левый вправо}
- if i<=j then {если левый и правый срослись}
- begin
- y1:=x[i];
- x[i]:=x[j];{меняем левый и правый}
- x[j]:=y1;
- inc(i); {левый вправо}
- dec(j); {правый влево}
- end;
- until i>j;{конец одной перестановки}
- if l<j then sort(l,j);{рекурсивно сортируем}
- if i<r then sort(i,r);{или левую или правую части}
- end;
- begin
- clrscr;
- randomize;
- writeln('Исходный массив:');
- for i:=1 to n do
- begin
- x[i]:=random(50);
- write(x[i]:4);
- end;
- writeln;
- sort(1,n);
- writeln('Массив после сортировки: ');
- for i:=1 to n do
- write(x[i]:4);
- readln;
- end.
Объяснение кода листинга программы
- Создается массив x из 19 целочисленных элементов.
- Объявляется переменная i, используемая в циклах.
- Описывается процедура sort с параметрами l и r, где l - левый конец массива и r - правый конец.
- В процедуре sort объявляются переменные i, j, x1, y1, m для использования в алгоритме быстрой сортировки.
- В процедуре sort вычисляется средний элемент m.
- Проводится итерация сравнения элементов в массиве с помощью цикла.
- В случае несовпадения индексов элементов, они меняются местами.
- После завершения цикла проверяется необходимость рекурсивной сортировки левой и правой частей массива.
- В основной программе инициализируется генератор случайных чисел и выводится исходный массив.
- Происходит вызов процедуры sort для сортировки и выводится отсортированный массив.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д