RosettaCodeData/Task/Knuth-shuffle/Yabasic/knuth-shuffle.basic

33 lines
658 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
// 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