|
|
1.1 ! root 1: shell (n, comp, exch) ! 2: int (*comp)(), (*exch)(); ! 3: /* SORTS UP. IF THERE ARE NO EXCHANGES (IEX=0) ON A SWEEP ! 4: THE COMPARISON GAP (IGAP) IS HALVED FOR THE NEXT SWEEP */ ! 5: { ! 6: int igap, iplusg, iex, i, imax; ! 7: igap=n; ! 8: while (igap > 1) ! 9: { ! 10: igap /= 2; ! 11: imax = n-igap; ! 12: do ! 13: { ! 14: iex=0; ! 15: for(i=0; i<imax; i++) ! 16: { ! 17: iplusg = i + igap; ! 18: if ((*comp) (i, iplusg) ) continue; ! 19: (*exch) (i, iplusg); ! 20: iex=1; ! 21: } ! 22: } while (iex>0); ! 23: } ! 24: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.