|
|
1.1 ! root 1: awk ' ! 2: BEGIN { n = 50 ! 3: for (i = 1; i <= n; i++) x[i] = int(100*rand()) ! 4: for (i = 1; i <= n; i++) draw(i) ! 5: qsort(1, n) # or isort() ! 6: } ! 7: function draw(i) { ! 8: print "a" i ": line", i, -3, i, x[i] ! 9: } ! 10: function swap(i, j, t) { ! 11: t = x[i]; x[i] = x[j]; x[j] = t ! 12: draw(i); draw(j) ! 13: print "click swap" ! 14: } ! 15: function less(i, j) { ! 16: print "click comp" ! 17: if (x[i] < x[j]) return 1; else return 0 ! 18: } ! 19: function isort( i, j) { ! 20: for (i = 2; i <= n; i++) ! 21: for (j = i; j > 1 && less(j, j-1); j--) ! 22: swap(j-1, j) ! 23: } ! 24: function qsort(l, u, i, m) { ! 25: if (l >= u) return ! 26: swap(m = l, l + int((u-l+1)*rand())) ! 27: for (i = l+1; i <= u; i++) ! 28: if (less(i, l)) swap(++m, i) ! 29: swap(l, m) ! 30: qsort(l, m-1) ! 31: qsort(m+1, u) ! 32: }'
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.