RosettaCodeData/Task/Knuth-shuffle/PureBasic/knuth-shuffle.purebasic
Ingy döt Net d066446780 langs a-z
2013-04-10 22:43:41 -07:00

32 lines
526 B
Text

EnableExplicit
Procedure KnuthShuffle(Array a(1))
Protected i, last = ArraySize(a())
For i = last To 1 Step -1
Swap a(i), a(Random(i))
Next
EndProcedure
Procedure.s ArrayToString(Array a(1))
Protected ret$, i, last = ArraySize(a())
ret$ = Str(a(0))
For i = 1 To last
ret$ + "," + Str(a(i))
Next
ProcedureReturn ret$
EndProcedure
#NumElements = 10
Dim a(#NumElements-1)
Define i
For i = 0 To #NumElements-1
a(i) = i
Next
KnuthShuffle(a())
Debug "shuffled: " + ArrayToString(a())