home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG023.ARK / STOICSRT.STC < prev    next >
Text File  |  1984-04-29  |  1KB  |  51 lines

  1.  
  2.  
  3. % ***************************************************************************
  4. % ** COPYRIGHT (C) MASSACHUSETTS INSTITUTE OF TECHNOLOGY AND HARVARD       **
  5. % ** UNIVERSITY, BIOMEDICAL ENGINEERING CENTER 1977.  ALL RIGHTS RESERVED. **
  6. % ***************************************************************************
  7.  
  8. % RADIX EXCHANGE SORT
  9. % SORTS A LINEAR ARRAY OF 1-WORD KEYS
  10. % J. SACHS 2/14/77
  11.  
  12. % ARRAY SIZE SORT
  13. % ARRAY IS ADDRESS OF ARRAY TO BE SORTED
  14. % SIZE IS ARRAY SIZE IN BYTES
  15. % ON RETURN, ARRAY IS SORTED IN ASCENDING ORDER
  16.  
  17. RADIX @ OCTAL
  18.  
  19. 0 'MASK CONSTANT
  20. 0 'SELF CONSTANT
  21.  
  22. 'SORT1 : DDUP 2- LT IF
  23.   DDUP BEGIN
  24.    OVER @ MASK AND EQZ IF
  25.     OVER 2+ 2UNDER ELSE
  26.     2- DUP @ MASK AND EQZ IF
  27.      DDUP XCHG OVER 2+ 2UNDER
  28.     THEN
  29.    THEN DDUP EQ
  30.   END
  31.   MASK 1 NE IF
  32.    MASK U2/ () MASK !
  33.    3OVER OVER SELF EXEC
  34.    OVER 3OVER SELF EXEC
  35.    MASK 2* () MASK !
  36.   THEN 2DROP
  37.  THEN 2DROP
  38. ;
  39.  
  40. () SORT1 () SELF !
  41.  
  42. 'SORT : OVER + 100000 () MASK ! SORT1 ;
  43.  
  44. RADIX !
  45. ;F
  46.  
  47.  
  48.  
  49. ***EOF***
  50.  
  51.