[Delphi (Object Pascal)] Pascal经典算法详解 - 快速排序法 →→→→→进入此内容的聊天室

来自 , 2020-12-15, 写在 Delphi (Object Pascal), 查看 138 次.
URL http://www.code666.cn/view/84e8ce78
  1. procedure qsort(L,R:longint);
  2.        var
  3.          i,j,mid,temp:longint;
  4.        begin
  5.            i:=L;
  6.            j:=R;
  7.            mid:=a[L+random(R-L+1)];   {随机选择一个数组中的数作为对比数}
  8.            repeat
  9.               while a[i]< mid do inc(i);    {在左半部分寻找比中间数大的数}
  10.               while mid< a[j] do dec(j);    {在右半部分寻找比中间数小的数}
  11.               if i< =j then     {若找到一组与排序目标不一致的数对则交换它们}
  12.                  begin
  13.                    temp:=a[i];
  14.                    a[i]):=a[j];
  15.                    a[j]:=temp;
  16.                    inc(i);dec(j); {继续找}
  17.                  end;
  18.             until i >j;
  19.             if L< j then qsort(L,j);   {若未到两个数的边界,则递归搜索左右区间}
  20.             if i< R then qsort(i,R);
  21.         end;
  22.  
  23. //delphi/7187

回复 "Pascal经典算法详解 - 快速排序法"

这儿你可以回复上面这条便签

captcha