COMCSST 
COMMON
          CTEXT  COMCSST - SHELL SORT TABLE.
          IF     -DEF,QUAL$,1 
          QUAL   COMCSST
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SST      SPACE  4
***       SST - SHELL SORT TABLE. 
*         E. J. MUNDSTOCK.  70/10/07. 
*         UNIVERSITY OF MINNESOTA.
 SST      SPACE  4
***              SST SORTS A TABLE USING A SHELL SORTING TECHNIQUE. 
*         THE TABLE IS SORTED IN PLACE INTO ASCENDING ORDER.
*         ALL ELEMENTS SHOULD BE OF THE SAME SIGN.
* 
*         ORIGIN OF TECHNIQUE IS CACM VOL 6 NUMBER 5  MAY 1963, P209. 
*         FIRST CODED BY R. HOTCHKISS IN *SORT1*. 
*         REVISED BY L. A. LIDDIARD.
* 
*         ENTRY  (B1) = 1.
*                (B7) = ADDRESS OF TABLE TO BE SORTED.
*                (X1) = NUMBER OF ELEMENTS IN ARRAY.
* 
*         EXIT   TABLE SORTED.
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                B - 2, 3, 4, 5.
*                A - 1, 2, 6, 7.
* 
*         CALLS NONE. 
  
  
 SST1     SA7    B5-B4       T(J+K) = S 
          SB2    B2+B1       I = I+1
          EQ     B2,B3,SST4  IF END OF TABLE
 SST2     SA2    B2          S = T(I) 
          NO
          SB5    B2+B4       J = I-K
          BX7    X2 
 SST3     SA1    B5          T(J) 
          IX3    X2-X1       COMPARE S AND T(J) 
          PL     X3,SST1     IF ELEMENTS IN ORDER 
          BX6    X1          T(J+K) = T(J)
          SB5    B5+B4       J = J-K
          SA6    A1-B4
          GE     B5,B7,SST3  IF J " FIRST 
          EQ     SST1 
  
 SST4     AX4    1           K = K/2
          NO
          SB4    X4          (B4) = -K
          SB2    B7-B4       I = FIRST+K
          NZ     X4,SST2     IF K " 0 
  
 SST      PS                 ENTRY/EXIT 
          MX4    12          K = 2**(ENTIER(LOG2(COUNT)+1)
          SB3    B7+X1       (B3) = LAST+1
          NX6,B2 X1 
          AX4    X4,B2
          EQ     SST4        ENTER SORT LOOP
          SPACE  4
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 SST=     EQU    /COMCSST/SST 
 QUAL$    ENDIF 
          ENDX
