Выполнить сортировку массива по алгоритму QuickSort - Turbo Pascal
Формулировка задачи:
Дан массив чисел A. Выполнить сортировку массива по алгоритму QuickSort. В качестве разделяющего выбирать средний элемент отрезка. Показать состояние массива после каждой операции разделения.
А=(36,25,27,83,50,90,52,86,49,18,37,8)
Решение задачи: «Выполнить сортировку массива по алгоритму QuickSort»
textual
Листинг программы
Const Max = 12; Type mas = Array[1..Max] of Integer; Const B : mas = (36,25,27,83,50,90,52,86,49,18,37,8); Var A : mas; Procedure ShowMas; Var k : Longint; Begin For k:=1 to Max do Write(A[k]:2,' '); Writeln; End; Procedure QuickSort(left,right : Longint); Var m,l,r : Longint; Begin l:=left; r:=right; m:=((r-l) div 2)+l; While (l<r) do Begin While (A[l]<A[m]) and (l<m) do Inc(l); While (A[r]>A[m]) and (r>m) do Dec(r); If (A[l]>A[r]) and (l<r) then Begin A[l]:=A[l]+A[r]; A[r]:=A[l]-A[r]; A[l]:=A[l]-A[r]; If l=m then m:=r else If r=m then m:=l; ShowMas; End; End; m:=l; {l = r} If left<m-1 then QuickSort(left,m-1); If right>m+1 then QuickSort(m,right); End; Begin A:=B; ShowMas; QuickSort(1,Max); End.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д