Bucketsort: Difference between revisions

Line 54:
ERASE BS_Buckets_Array, BS_Count_Array
END IF
END SUB
 
SUB InsertionSort (array() AS DOUBLE, start AS LONG, finish AS LONG, order&)
DIM InSort_L_ArrayTemp AS DOUBLE
DIM InSort_L_i AS LONG
DIM InSort_L_j AS LONG
SELECT CASE order&
CASE 1
FOR InSort_L_i = start + 1 TO finish
InSort_L_ArrayTemp = array(InSort_L_i)
InSort_L_j = InSort_L_i - 1
DO UNTIL InSort_L_j < start
IF (InSort_L_ArrayTemp < array(InSort_L_j)) THEN
array(InSort_L_j + 1) = array(InSort_L_j)
InSort_L_j = InSort_L_j - 1
ELSE
EXIT DO
END IF
LOOP
array(InSort_L_j + 1) = InSort_L_ArrayTemp
NEXT
CASE ELSE
FOR InSort_L_i = start + 1 TO finish
InSort_L_ArrayTemp = array(InSort_L_i)
InSort_L_j = InSort_L_i - 1
DO UNTIL InSort_L_j < start
IF (InSort_L_ArrayTemp > array(InSort_L_j)) THEN
array(InSort_L_j + 1) = array(InSort_L_j)
InSort_L_j = InSort_L_j - 1
ELSE
EXIT DO
END IF
LOOP
array(InSort_L_j + 1) = InSort_L_ArrayTemp
NEXT
END SELECT
END SUB
</lang>
Anonymous user