RosettaCodeData/Task/Knuth-shuffle/Yabasic/knuth-shuffle.basic
2023-07-01 13:44:08 -04:00

32 lines
658 B
Text

// Rosetta Code problem: https://www.rosettacode.org/wiki/Ramsey%27s_theorem
// by Jjuanhdez, 06/2022
dim array(52)
for i = 1 to arraysize(array(),1) : array(i) = i : next i
print "Starting array"
for i = 1 to arraysize(array(),1)
print array(i) using "####";
next i
KnuthShuffle(array())
print "\n\nAfter Knuth shuffle downwards"
for i = 1 to arraysize(array(),1)
print array(i) using "####";
next i
print
end
sub KnuthShuffle(a())
local i, j, t, lb, ub
lb = 1
ub = arraysize(a(),1) - lb
for i = lb to ub
j = round(ran(i +1))
t = a(lb + i)
a(lb + i) = a(lb + j)
a(lb + j) = t
next i
end sub