快速排序

本文深入讲解了快速排序算法的实现原理及过程,通过Pascal语言详细展示了如何使用递归方式实现快速排序,包括分区操作、交换元素等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

procedure QuickSort(var A: array of Integer; iLo, iHi:Integer);
  procedure  Swap(var A,B:Integer);
  var
    temp:Integer;
  begin
    temp:= A;
    A:=B;
    B:=temp;
  end;
var
  Lo,Hi,Mid: Integer;
begin
  Lo := iLo;
  Hi := iHi;
  Mid := A[(Lo+ Hi) div 2];
  repeat
    while A[Lo]< Mid do Inc(Lo);
    while A[Hi] > Mid do Dec(Hi);
    if Lo <= Hi then
    begin
      Swap(A[Lo],A[Hi]);
      Inc(Lo);
      Dec(Hi);
    end;
  until Lo > Hi;
  if Hi > iLo then QuickSort(A, iLo, Hi);
  if Lo < iH  then QuickSort(A, Lo, iHi);
end;

转载于:https://www.cnblogs.com/doorsky/archive/2009/11/16/1604187.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值