Sorting algorithms/Comb sort: Difference between revisions

Added uBasic/4tH version
(added FreeBasic)
(Added uBasic/4tH version)
Line 1,837:
 
{{omit from|GUISS}}
=={{header|uBasic/4tH}}==
<lang>PRINT "Comb sort:"
n = FUNC (_InitArray)
PROC _ShowArray (n)
PROC _Combsort (n)
PROC _ShowArray (n)
PRINT
END
 
 
_Combsort PARAM (1) ' Combsort subroutine
LOCAL(4)
b@ = a@
c@ = 1
 
DO WHILE (b@ > 1) + c@
 
b@ = (b@ * 10) / 13
 
IF (b@ = 9) + (b@ = 10) THEN b@ = 11
IF b@ < 1 THEN b@ = 1
 
c@ = 0
d@ = 0
e@ = b@
 
DO WHILE e@ < a@
IF @(d@) > @(e@) THEN PROC _Swap (d@, e@) : c@ = 1
d@ = d@ + 1
e@ = e@ + 1
LOOP
LOOP
RETURN
_Swap PARAM(2) ' Swap two array elements
PUSH @(a@)
@(a@) = @(b@)
@(b@) = POP()
RETURN
/* {{header|TI-83 BASIC}} */
_InitArray ' Init example array
PUSH 4, 65, 2, -31, 0, 99, 2, 83, 782, 1
FOR i = 0 TO 9
@(i) = POP()
NEXT
RETURN (i)
_ShowArray PARAM (1) ' Show array subroutine
FOR i = 0 TO a@-1
PRINT @(i),
NEXT
PRINT
RETURN</lang>
374

edits