/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
InstallerSamples/Algorithms/SortArrays/QuickSort.pas
44 строки
882 B
Mikhalkovich Stanislav
Примеры - устранил неточности
04 янв 2025, 14:44
04 янв 2025, 14:44
c2347e6
Код
Авторство
О чём код?
// Быстрая сортировка Ч. Хоара /// Разделение a[l]..a[r] на части a[l]..a[q] <= a[q+1]..a[r] function Partition(a: array of integer; l,r: integer): integer; begin var i := l - 1; var j := r + 1; var x := a[l]; while True do begin repeat i += 1; until a[i]>=x; repeat j -= 1; until a[j]<=x; if i<j then Swap(a[i],a[j]) else begin Result := j; exit; end; end; end; /// Сортировка частей procedure QuickSort(a: array of integer; l,r: integer); begin if l>=r then exit; var j := Partition(a,l,r); QuickSort(a,l,j); QuickSort(a,j+1,r); end; const n = 20; begin var a := ArrRandom(n); Println('До сортировки: '); Println(a); QuickSort(a,0,a.Length-1); Println('После сортировки: '); Println(a); end.