Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
38
Task/Permutations/BBC-BASIC/permutations.basic
Normal file
38
Task/Permutations/BBC-BASIC/permutations.basic
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
DIM List%(3)
|
||||
List%() = 1, 2, 3, 4
|
||||
FOR perm% = 1 TO 24
|
||||
FOR i% = 0 TO DIM(List%(),1)
|
||||
PRINT List%(i%);
|
||||
NEXT
|
||||
PRINT
|
||||
PROC_NextPermutation(List%())
|
||||
NEXT
|
||||
END
|
||||
|
||||
DEF PROC_NextPermutation(A%())
|
||||
LOCAL first, last, elementcount, pos
|
||||
elementcount = DIM(A%(),1)
|
||||
IF elementcount < 1 THEN ENDPROC
|
||||
pos = elementcount-1
|
||||
WHILE A%(pos) >= A%(pos+1)
|
||||
pos -= 1
|
||||
IF pos < 0 THEN
|
||||
PROC_Permutation_Reverse(A%(), 0, elementcount)
|
||||
ENDPROC
|
||||
ENDIF
|
||||
ENDWHILE
|
||||
last = elementcount
|
||||
WHILE A%(last) <= A%(pos)
|
||||
last -= 1
|
||||
ENDWHILE
|
||||
SWAP A%(pos), A%(last)
|
||||
PROC_Permutation_Reverse(A%(), pos+1, elementcount)
|
||||
ENDPROC
|
||||
|
||||
DEF PROC_Permutation_Reverse(A%(), first, last)
|
||||
WHILE first < last
|
||||
SWAP A%(first), A%(last)
|
||||
first += 1
|
||||
last -= 1
|
||||
ENDWHILE
|
||||
ENDPROC
|
||||
Loading…
Add table
Add a link
Reference in a new issue