|
|
1.1 ! root 1: program quicksort(output); ! 2: const n = 100; ! 3: var i,z: integer; ! 4: a: array[1..n] of integer; ! 5: ! 6: procedure sort(l,r: integer); ! 7: var i,j,x,w: integer; ! 8: begin {quicksort with recursion on both partitions} ! 9: i := l; j := r; x := a[(i+j) div 2]; ! 10: repeat ! 11: while a[i] < x do i := i+1; ! 12: while x < a[j] do j := j-1; ! 13: if i <= j then ! 14: begin w := a[i]; a[i] := a[j]; a[j] := w; ! 15: i := i+1; j := j-1 ! 16: end ! 17: until i > j; ! 18: if l < j then sort(l,j); ! 19: if l < r then sort(i,r); ! 20: end { sort } ; ! 21: ! 22: begin z := 1729; {generate random sequence} ! 23: for i := 1 to n do ! 24: a[i] := round(1000 * random(1.0)); ! 25: writeln(wallclock); ! 26: sort(1,n); ! 27: writeln(wallclock); ! 28: for i := 1 to n-1 do ! 29: if a[i] > a[i+1] then writeln(i,a[i],a[i+1]); ! 30: end .
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.