begin library A6, A12; integer i, j, z, t1, layout; integer array a[1:10000]; procedure sort (k, r); value k, r; integer k, r; begin integer i, j, x, w; i := k; j := r; x := a[(i+j) !div 2]; REPEAT: UP: if a[i] < x then begin i := i + 1; goto UP end DOWN: if x < a[j] then begin j := j - 1; goto DOWN end if i <= j then begin w := a[i]; a[i] := a[j]; a[j] := w; i := i + 1; j := j - 1 end if i <= j then goto REPEAT; if k < j then sort(k, j); if i < r then sort(i, r); end sort; integer procedure mod (dividend, divisor); value dividend, divisor; integer dividend, divisor; mod := dividend - divisor * (dividend !div divisor); integer procedure clock; kdf9 2/0/0/0; SET 17; OUT; REV; ERASE; SHL-24; exit algol integer procedure random (z); value z; integer z; kdf9 1/0/0/0; V0 = 131071; {z}; V0; XD; CONT; VR; SHL+12; SHL-12; exit algol layout := format({ndddddddcc}); open(30); z := 1729; for i := 1 step 1 until 10000 do begin z := random(z); a[i] := z end t1 := clock; sort(1, 10000); for i := 1 step 1 until 10000-1 do if a[i] > a[i+1] then output(30, i); writetext(30, {CPU _ time _ in _ seconds:}); write(30, layout, clock - t1); close(30); end |