function Arrange(a,n)
n = n or #a
if n<=1 then
printResult(a)
return
end
for i = 1, n do
a[i],a[n] = a[n],a[i]
Arrange(a,n-1)
a[i],a[n] = a[n],a[i]
end
end
function printResult(a)
for i = 1, #a do
io.write(a[i].." ")
end
print()
end
Arrange({1,2,3},3)
利用递归来实现,依次遍历元素放到最后一个位置,然后递归求其余的位置的元素
本文深入探讨了一种基于递归的排列算法实现方法,通过将元素依次放置到最后位置,然后递归解决剩余元素的排列问题,实现了对数组中所有可能排列的生成。此算法适用于理解和实践递归思想。
775

被折叠的 条评论
为什么被折叠?



