lua实现全排列

来源:互联网 发布:蒋方舟写作水平知乎 编辑:程序博客网 时间:2024/06/01 07:19
function printResult (a)for i = 1, #a doio.write(a[i], " ")endio.write("\n")end
function Permute(a,k)local len = #aif(len == k) thenprintResult(a)elsefor i=k, len doa[i], a[k] = a[k], a[i]Permute(a,k+1)a[i], a[k] = a[k], a[i]endendend

arr = {"a", "b", "c"}Permute(arr,1)

输出结果:

>lua -e "io.stdout:setvbuf 'no'" "add.lua" 
a b c 
a c b 
b a c 
b c a 
c b a 
c a b 
>Exit code: 0

9.2里在用协程写,直接递归就可以啦!

0 0