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

来自 , 2019-06-17, 写在 Delphi (Object Pascal), 查看 113 次.
URL http://www.code666.cn/view/a1a609f1
  1. procedure qsort(l, r: Integer);
  2. var
  3.   i, j, mid: Integer;
  4.   begin
  5.   i := l;
  6.   j := r;
  7.   mid := a[(l + r) div 2]; {将当前序列在中间位置的数定义为中间数}repeatwhile a[i] <
  8.   mid do Inc(i); {在左半部分寻找比中间数大的数}while a[j] > mid do
  9.   Dec(j);{在右半部分寻找比中间数小的数}if i <= j then
  10. begin {若找到一组与排序目标不一致的数对则交换它们}Swap(a[i], a[j]);
  11.   Inc(i);
  12.   Dec(j); {继续找}
  13. end;
  14.  
  15. until i > j;
  16.  
  17. if l < j then
  18. qsort(l, j); {若未到两个数的边界,则递归搜索左右区间}if i < r then
  19. qsort(i, r);
  20.  
  21. end;{sort}
  22. //delphi/6609

回复 "pascal经典算法 - 快速排序"

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

captcha