四、排序算法 A.快速排序: procedure qsort(l,r:integer);var i,j,mid:integer;

题目内容(请给出正确答案)

四、排序算法

A.快速排序:

procedure qsort(l,r:integer);

var i,j,mid:integer;

参考答案和解析
正确答案:

 

begin
i:=l;j:=r; mid:=a[(l+r) div 2]; {将当前序列在中间位置的数定义为中间数}
repeat
while a[i]<mid do inc(i); {在左半部分寻找比中间数大的数}
while a[j]>mid do dec(j);{在右半部分寻找比中间数小的数}
if i<=j then begin {若找到一组与排序目标不一致的数对则交换它们}
swap(a[i],a[j]);
inc(i);dec(j); {继续找}
end;
until i>j;
if l<j then qsort(l,j); {若未到两个数的边界,则递归搜索左右区间}
if i<r then qsort(i,r);
end;{sort}

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
更多相关问题