|
|
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.