Sorting Library

Decimal BASIC has two sorting libraries SORT1.LIB and SORT2.LIB.

SORT1.LIB

SORT1.LIB contains an external subprogram sort(a()), which sort a one-dimensional array in increasing order.
When you use SORT1.LIB, add a MERGE statement at the tail of a program as shown in the following.
Example

10 DECLARE EXTERNAL SUB sort
20 DIM a(10)
30 DATA 3,8,4,6,9,2,5,5,7,5
40 MAT READ a
50 CALL sort(a)
60 MAT PRINT a;
70 END
80 MERGE "sort1.lib"

SORT2.LIB

SORT2.LIB contains an external subprogram sort(m(),ix()), which assigns subscripts of an array m to an array ix in increasing order. That is, the first element of ix is the subscript of the smallest element of the array m. The array m shall not be changed.
Example

100 DECLARE EXTERNAL SUB sort
110 DIM a(10),ix(10)
120 DATA 3,8,4,6,9,2,5,5,7,5
130 MAT READ a
140 CALL sort(a,ix)
150 FOR i=1 TO 10
160    PRINT a(ix(i));
170 NEXT i
180 END
190 MERGE "sort2.lib"


Note
When an OPTION ARITHMETIC statement should be contained, using the File menu, merge SORT1.LIB or SORT2.LIB and modify the routine.
If you want to share the library whose arithmetic option is NATIVE or so, add a OPTION ARITHMETIC statement to the routine and save it with a new name.


Back