递归实现全排列.doc

递归实现全排列.txt10有了执著,生命旅程上的寂寞可以铺成一片蓝天;有了执著,孤单可以演绎成一排鸿雁;有了执著,欢乐可以绽放成满圆的鲜花。虽说这是个蛮基础的东西 但这个鸟东西困扰了我十年了 今天终于解决了~ 惭愧啊 实际上问题并不在于全排列问题本身 而是在于basic中的goto 当年basic中的方法是搜索回溯 十来行的代码 里面三个goto搞的人团团转 最后终于彻底失去了继续参加竞赛的兴趣和动力 然后一晃就是十年 今天正在看programming in lua 又见这个鸟问题 是用lua实现的递归算法 看了英文原版的书如醍醐灌顶 豁然开朗 原来这么简单! 打印数组a{1,2,...,n}的全排列 递归思想: 取出数组中第一个元素放到最后,即a[1]与a[n]交换,然后递归求a[n-1]的全排列 1)如果数组只有一个元素n=1,a={1} 则全排列就是{1} 2)如果数组有两个元素n=2,a={1,2} 则全排列是 {2,1}--a[1]与a[2]交换。交换后求a[2-1]={2}的全排列,归结到1) {1,2}--a[2]与a[2]交换。交换后求a[2-1]={1}的全排列,归结到1) 3)如果数组有三个元素n=3,a={1,2,3} 则全排列是 {{2,3},1}--a[1]与a[3]交换。后求a[3-1]={2,3}的全排列,归结到2) {{1,3},2)--a[2]与a

文档评论(0)

1亿VIP精品文档

相关文档