全排列递归算法 希望我的答复可以帮助你加深理解:第一,perm函数中的条件for(int i=k;i;i+)应更正为 for(int i=k;i;i+)第二,你可以在核心步骤的前后打印有关变量的值,分析查看每一步的具体执行情况,这是编程调试的重要能力,要加强。第三,以下是我提供的附件程序及运行结果(以1,2,3这个数组的全排列),可辅助分析:1.程序源码=includeincludeint N,P=0;void swap(int a[],int i,int j){int temp=a[i];a[i]=a[j];a[j]=temp;}void perm(int a[],int k,int m,int pk,int pm){int i;k为中间变量,m初始化为参与排列元素的起始坐标和终止坐标pk,pm分别表示参与排列元素的起始坐标和终止坐标,整个递归过程保持不变*/if(k=m){printf(\"->;perm%d:\\n\",P/N+1);打印提示*/for(i=pk;i;i+){printf(\"%d\",a[i]);P=P+1;}printf(\"\\n\\n\");}else{for(i=k;i;i+){printf(\"a%d,%d,%d,%d,%d\\n\",i,k,a[0],a[1],a[2]);swap(a,k,i);printf(\"b%d,%d,%d,%d,%d\\n\",i,k,a[0],a[1],a[2]);perm(a,k+1,m,pk,pm);printf(\"c%d,%d,%d,%d,%d\\n\",i,k,a[0],a[1],a[2]);swap(a,k,i);printf(\"d%d,%d,%d,%d,%d\\n\",i,k,a[0],a[1],a[2]);}}}int main(){调节以下N值及对应数组内容,可打印。哪位高手能帮我参透全排列的递归算法,跪谢~~ 知道汉诺塔的递归程序的意思吗就是先控制一个不动,让剩余的排列好,然后再移动第一个,再排列好剩余的这个程序也是这个意思举个例子说 12341。先保持1不动,排列2342。保持2不动,排列343。保持3不动,排列44。得到4;输出1234。5。然后跳转到3,将3与4互换,6。得到3;输出1243。7。跳转到2,将2与3互换,8。重复3-6,得1324,1342。9。跳转到2,将2与4互换,得到1423,1432。以下省略若干步。最后就得到全排列解答完毕一个比较好的全排列算法(C语言)-|killniu 发表于 2006-4-18 23:39:00我有一个比较好的全排列算法,我验证了3、4、5的结果是正确的。程序中没有使用递归,只是几个循环,速度还令人满意。在C466A,Win2000的机器上,进行8个数字的全排列,结果不显示,重定向到一个文本文件中,耗时不到一秒钟9个数字的全排列耗时6秒种。10个数字的全排列55秒种。(以上都不显示结果,均重定向到一个文本文件)11个数字的全排列(不显示结果,在原程序中不定义ISPRINT)耗时大约16秒钟。欢迎各位指点算法为:用两个数组,一个数组存放当前结果,第二个数组是每一个数是否已经使用的标志。比如对10个数进行全排列,第一个结果是:0 1 2 3 4 5 6 7 8 9。然后。全排列的递归算法是怎样的? using System;namespace TotalSort {/*/全排列的递归算法/class Class1 {/*/应用程序的主入口点。[STAThread]static void Main(string[]args){/char[]s=。
随机阅读
- 汉庭酒店长兴岛凤凰镇店 中国现在市区面积最大的城市是哪一个?
- 天津3月6号是什么日子,为什么放炮 天津放炮2016正月15时间
- 汽车仪表盘上有个黄色圆圈里面有个感叹号是什么意思 汽车仪表盘有个黄色圆圈带感叹号
- 2012年玉溪澄江县教育局中小幼教师招聘考试内容是什么? 澄江县凤山小学简介
- 去九寨沟旅游,想找一家信誉好的旅行社,选中了四川中国旅行社,但有好多家。想知道谁是正宗。 四川省中国旅行社附近地铁
- 海林横道河具体位置 海林市横道河子到赤峰市最近路线怎么走
- 有关中学生的教育电影有哪些啊?(比如:《武术班》《我要飞翔》之类的电影) 朋友们,帮帮忙了…… 电影武术班
- 安微六安寿县到河南平顶山叶县距离有多远? 平顶山水云阁
- 欧洲葡萄酒庄园需要多少钱 一个葡萄酒庄园的最高管理人员都该知道什么?
- 代开普通发票违法吗 普通文件能打 发票不动
- 父亲欠银行太多账没有,以后孩子长大成人会不会要孩子来还 爸爸欠孩子太多了
- 水仙儿saomai 有没有男主比较特别害羞的小说?
- 自然界因为有了生物而充满生机,下列不属于生物共同特征的是1.生物都能快速运动2.生物的生活更需要营
- 南大街到东坡公园 从常州火车站,或南大街,或江南商场坐几路公交到东坡公园?
- 问一下我是十级伤残工资6000一个月能有多少陪多少 四会燃气热电冷联产项目
- 新生儿坏死性小肠结肠炎应该怎么治疗好一点? 新生儿小肠坏死性结肠炎课题
- 石榴长成树要多少年? 石榴果实 放射状
- 车祸事故怎样处理 山东路抚顺路交叉路口车祸
- 正切函数和余切函数怎么求定义域 反正弦函数,反余弦函数,反正切函数,反余切函数的定义域和值域是什么啊?
- 赵丽颖评价陈晓 陈晓这么评价赵丽颖演的花千骨