/frames 8 def /N 420 def /rows 2 def /snapone 60 def /snaptwo 60 def /Ndots N def %include /u/rs/book3/pslib/tools.ps %include /u/rs/book3/pslib/dots.ps /compare {/i exch def /j exch def A i get A j get gt j i 3 -1 roll} def /bubblesort { 1 1 N 1 sub { dup N 1 sub exch -1 exch 1 add {dup 1 sub compareswap} for snapone mod 0 eq { ARRAY } if } for } def /insertionsort { 1 1 N 1 sub { /lll exch def lll -1 1 { /xxx exch def xxx 1 sub xxx compare { pop pop exit } { pop pop } ifelse xxx xxx 1 sub compareswap } for lll snapone mod 0 eq { ARRAY } if } for } def /selectionsort {0 1 N 2 sub dup /min exch def {/xxx exch def xxx 1 add 1 N 1 sub {min compare { pop /min exch def} {pop pop} ifelse} for xxx min swap xxx snapone mod 0 eq { ARRAY } if } for } def newRow N randomperm /A exch def /A [ 0 A aload pop ] def /LL 1 def /RR N 1 sub def ARRAY insertionsort ARRAY