10 REM ************************ 20 REM PROCdiminish_sort 30 REM ************************ 40 REM Downloaded from Tim's NC Users' Site 50 REM http://www.ncus.org.uk 60 REM Numbers to sort in array A%. Total number of items L% 70 DEF PROCdiminish_sort 80 E%=LOG(L%)/LOG(2) 90 F%=2^E% 100 FOR G%=1 TO E% 110 F%=F%/2:M%=L%-F% 120 REPEAT:C%=0 130 FORN%=1 TO M% 140 IF A%(N%)>A%(N%+F%) T%=A%(N%):A%(N%)=A%(N%+F%):A%(N%+F%)=T%:C%=1 150 NEXT 160 M%=M%-1 170 UNTIL C%=0 180 NEXT 190 ENDPROC