Another update from ingydotnet^djgoku

This commit is contained in:
Ingy döt Net 2015-11-18 06:14:39 +00:00
parent 91df62d461
commit 948b86eafa
7604 changed files with 108452 additions and 22726 deletions

View file

@ -1,34 +1,47 @@
permute(a: ARRAY[INTEGER]; k: INTEGER)
require
ar_not_void: a.count>=1
k_valid_index: k>0
local
i,t: INTEGER
do
if k=a.count then
across a as ar loop io.put_string (ar.item.out) end
io.put_string ("%N")
else
from
i:= k
until
i> a.count
loop
t:= a[k]
a[k]:= a[i]
a[i]:= t
permute(a,k+1)
t:= a[k]
a[k]:= a[i]
a[i]:= t
i:= i+1
class
APPLICATION
create
make
feature {NONE}
make
do
test := <<2, 5, 1>>
permute (test, 1)
end
test: ARRAY [INTEGER]
permute (a: ARRAY [INTEGER]; k: INTEGER)
-- All permutations of 'a'.
require
count_positive: a.count > 0
k_valid_index: k > 0
local
t: INTEGER
do
if k = a.count then
across
a as ar
loop
io.put_integer (ar.item)
end
io.new_line
else
across
k |..| a.count as c
loop
t := a [k]
a [k] := a [c.item]
a [c.item] := t
permute (a, k + 1)
t := a [k]
a [k] := a [c.item]
a [c.item] := t
end
end
end
end
make
do
test:= << 2,5,1>>
permute(test, 1)
end
test: ARRAY[INTEGER]
end