Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,51 @@
|
|||
SUB quicksort (arr(), l, r)
|
||||
LET lidx = round(l)
|
||||
LET ridx = round(r)
|
||||
IF (r-l) > 0 THEN
|
||||
LET pivot = round((l+r)/2)
|
||||
DO WHILE (lidx <= pivot) AND (ridx >= pivot)
|
||||
DO WHILE (arr(lidx) < arr(pivot)) AND (lidx <= pivot)
|
||||
LET lidx = lidx+1
|
||||
LOOP
|
||||
DO WHILE (arr(ridx) > arr(pivot)) AND (ridx >= pivot)
|
||||
LET ridx = ridx-1
|
||||
LOOP
|
||||
LET temp = arr(lidx)
|
||||
LET arr(lidx) = arr(ridx)
|
||||
LET arr(ridx) = temp
|
||||
LET lidx = lidx+1
|
||||
LET ridx = ridx-1
|
||||
IF (lidx-1) = pivot THEN
|
||||
LET ridx = ridx+1
|
||||
LET pivot = ridx
|
||||
ELSEIF (ridx+1) = pivot THEN
|
||||
LET lidx = lidx-1
|
||||
LET pivot = lidx
|
||||
END IF
|
||||
LOOP
|
||||
CALL quicksort (arr(), l, pivot-1)
|
||||
CALL quicksort (arr(), pivot+1, r)
|
||||
END IF
|
||||
END SUB
|
||||
|
||||
DIM arr(15)
|
||||
LET a = round(LBOUND(arr))
|
||||
LET b = round(UBOUND(arr))
|
||||
|
||||
RANDOMIZE
|
||||
FOR n = a TO b
|
||||
LET arr(n) = round(INT(RND*99))
|
||||
NEXT n
|
||||
|
||||
PRINT "unsort ";
|
||||
FOR n = a TO b
|
||||
PRINT arr(n); " ";
|
||||
NEXT n
|
||||
|
||||
PRINT
|
||||
PRINT " sort ";
|
||||
CALL quicksort (arr(), a, b)
|
||||
FOR n = a TO b
|
||||
PRINT arr(n); " ";
|
||||
NEXT n
|
||||
END
|
||||
Loading…
Add table
Add a link
Reference in a new issue