CONST limit
= 2000000 'number of items to load and sort
FOR i
= 0 TO limit
'print a ton of entries n(i) = num
Array(i) = num
num = n(i)
n(k) = n(k - 1)
n(j) = num
PRINT USING "###.### seconds to insertion sort 20,000 items together"; t1##
- t##
Sort m
PRINT USING "###.### seconds to mem sort 2,000,000 items"; t3##
- t2##
'Convert our offset data over to something we can work with
_MEMPUT m1
, m1.OFFSET
, m.ELEMENTSIZE:
_MEMGET m1
, m1.OFFSET
, ES
'Element Size _MEMPUT m1
, m1.OFFSET
, m.SIZE:
_MEMGET m1
, m1.OFFSET
, EC
'Element Count will temporily hold the WHOLE array size
EC = EC / ES - 1 'Now we take the whole element size / the size of the elements and get our actual element count. We subtract 1 so our arrays start at 0 and not 1.
'And work with it!
i = 0
temp1(t1) = temp1(t1) + 1
i = i + 1
i1 = -128
counter = counter + 1
temp1(i1) = temp1(i1) - 1
i1 = i1 + 1
i = 0
temp2(t2) = temp2(t2) + 1
i = i + 1
i1 = -32768
counter = counter + 1
temp2(i1) = temp2(i1) - 1
i1 = i1 + 1
gap = EC
gap = 10 * gap \ 13
i = 0
swapped = 0
o = m.OFFSET + i * 4
o1 = m.OFFSET + (i + gap) * 4
swapped = -1
i = i + 1
gap = EC
gap = 10 * gap \ 13
i = 0
swapped = 0
o = m.OFFSET + i * 4
o1 = m.OFFSET + (i + gap) * 4
swapped = -1
i = i + 1
gap = EC
gap = 10 * gap \ 13
i = 0
swapped = 0
o = m.OFFSET + i * 8
o1 = m.OFFSET + (i + gap) * 8
swapped = -1
i = i + 1
gap = EC
gap = 10 * gap \ 13
i = 0
swapped = 0
o = m.OFFSET + i * 32
o1 = m.OFFSET + (i + gap) * 32
swapped = -1
i = i + 1
gap = EC
gap
= INT(gap
/ 1.247330950103979) i = 0
swapped = 0
o = m.OFFSET + i * ES
o1 = m.OFFSET + (i + gap) * ES
T7c = T7b
swapped = -1
i = i + 1
gap = EC
gap = 10 * gap \ 13
i = 0
swapped = 0
o = m.OFFSET + i * 8
o1 = m.OFFSET + (i + gap) * 8
swapped = -1
i = i + 1
CASE 11:
'_UNSIGNED _BYTE i = 0
temp11(t11) = temp11(t11) + 1
i = i + 1
i1 = 0
counter = counter + 1
temp11(i1) = temp11(i1) - 1
i1 = i1 + 1
CASE 12 '_UNSIGNED INTEGER i = 0
temp12(t12) = temp12(t12) + 1
i = i + 1
i1 = 0
counter = counter + 1
temp12(i1) = temp12(i1) - 1
i1 = i1 + 1
gap = EC
gap = 10 * gap \ 13
i = 0
swapped = 0
o = m.OFFSET + i * 4
o1 = m.OFFSET + (i + gap) * 4
swapped = -1
i = i + 1
CASE 18:
'_UNSIGNED _INTEGER64 gap = EC
gap = 10 * gap \ 13
i = 0
swapped = 0
o = m.OFFSET + i * 8
o1 = m.OFFSET + (i + gap) * 8
swapped = -1
i = i + 1