在 Pascal中sort_quick什么 意思

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:29:01

是快排:
时间复杂度不是O(N),是O(nlog2n)
procedure sort_quick(l,r: longint);
var i,j,x,y: longint;
begin
i:=l;j:=r; x:=a[(l+r) div 2];
repeat
while a[i]<x do inc(i);
while x<a[j] do dec(j);
if i<=j then begin
y:=a[i]; a[i]:=a[j]; a[j]:=y; inc(i);dec(j);
end;
until i>j;
if l<j then sort_quick(l,j);
if i<r then sort_quick(i,r);
end;

是快速排序的意思
快速排序是排序的一种
复杂度o(n)
用分治法的思路
同为排序的有冒泡排序,选择排序,归并排序等

快排,分治思想的排序方法,平均速度为O(nlog2N)
代码如下
从大到小对数组元素排序:
var
a : array[1..10000] of longint ;
i,n : longint ;
procedure sortquick(l,r:longint);
var
i,j,m,t : longint ;
begin
i:=l;
j:=r;
m:=a[l];
repeat
while a[i]>m do inc(i);
while a[j]<m do dec(j);
if i<=j then
begin
t