用delphi写一段快排算法
时间: 2023-11-18 16:02:51 浏览: 40
以下是使用 Delphi 语言实现的快速排序算法示例:
```Delphi
program QuickSort;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TIntArray = array of Integer;
procedure QuickSort(var A: TIntArray; L, R: Integer);
var
I, J, Pivot, Temp: Integer;
begin
if R > L then
begin
Pivot := A[(L + R) div 2];
I := L - 1;
J := R + 1;
repeat
repeat
Inc(I);
until A[I] >= Pivot;
repeat
Dec(J);
until A[J] <= Pivot;
if I < J then
begin
Temp := A[I];
A[I] := A[J];
A[J] := Temp;
end;
until I >= J;
QuickSort(A, L, J);
QuickSort(A, J + 1, R);
end;
end;
var
A: TIntArray;
I: Integer;
begin
SetLength(A, 10);
Writeln('Original array:');
for I := Low(A) to High(A) do
begin
A[I] := Random(100);
Write(A[I], ' ');
end;
Writeln;
QuickSort(A, Low(A), High(A));
Writeln('Sorted array:');
for I := Low(A) to High(A) do
begin
Write(A[I], ' ');
end;
end.
```
该算法使用递归实现快速排序,通过随机选择一个基准值来将数组分为两部分。左边的部分包含小于基准值的元素,右边的部分包含大于基准值的元素。然后递归对左右两部分进行快速排序,直到整个数组有序为止。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)