quicksort.p

来自「早期freebsd实现」· P 代码 · 共 31 行

P
31
字号
program quicksort(output);  const n = 100;  var i,z: integer;      a: array[1..n] of integer;  procedure sort(l,r: integer);    var i,j,x,w: integer;  begin {quicksort with recursion on both partitions}    i := l; j := r; x := a[(i+j) div 2];    repeat      while a[i] < x do i := i+1;      while x < a[j] do j := j-1;      if i <= j then        begin w := a[i]; a[i] := a[j]; a[j] := w;          i := i+1; j := j-1        end    until i > j;    if l < j then sort(l,j);    if l < r then sort(i,r);  end { sort } ;begin z := 1729;  {generate random sequence}  for i := 1 to n do    a[i] := round(1000 * random(1.0));  writeln(wallclock);  sort(1,n);  writeln(wallclock);  for i := 1 to n-1 do   if a[i] > a[i+1] then writeln(i,a[i],a[i+1]);end .

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?