| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 771 人关注过本帖
标题:请教一下卧龙先生,
取消只看楼主 加入收藏
bupthehe
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-8-2
收藏
 问题点数:0 回复次数:3 
请教一下卧龙先生,
用插孔法来找数字的全排列,该用什么算法来实现呢?

举个例子,已经知道123的全排列是 123 132 213 231 312 321
想求1234的全排列,对123来讲,它有四个空隙可以插入数字4,出来的结果是4123 1423 1243 1234
同样对132 213 。。。。。321做相同的处理, 就可以得到N=4时的全排列了


只是这个算法该怎么写呢?
想用个递归调用,可是感到是老虎吃天,无从下爪啊!
搜索更多相关主题的帖子: 卧龙 老虎 数字 算法 
2007-08-03 08:51
bupthehe
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-8-2
收藏
得分:0 
以下是引用bupthehe在2007-8-3 8:51:40的发言:
用插孔法来找数字的全排列,该用什么算法来实现呢?

举个例子,已经知道123的全排列是 123 132 213 231 312 321
想求1234的全排列,对123来讲,它有四个空隙可以插入数字4,出来的结果是4123 1423 1243 1234
同样对132 213 。。。。。321做相同的处理, 就可以得到N=4时的全排列了


只是这个算法该怎么写呢?
想用个递归调用,可是感到是老虎吃天,无从下爪啊!

多谢

2007-08-03 09:06
bupthehe
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-8-2
收藏
得分:0 
回复:(bupthehe)以下是引用bupthehe在2007-8-3 8:5...
辛苦了,谢谢卧龙了

我比较不清楚的地方就是这个函数的调用,刚才我是给你举个例子,就是说已知3的全排列,求4的全排列

我想做的是,求N的全排列。方法是用N来递归调用(N-1)的全排列,N-1调用N-2。。。,一直到N=2,全排列为12 21;


问题就出现在,这里面N 与N-1都是一个变量,如果用数组来实现的话,而数组的长度必须是定直的,不能随着变量的更改而更改

伪代码如下:
num(N)
{if N==2 生成一个2维数组,里面是 1 2 2 1};
N>=2 则调用num(N-1) 根据num(N-1) 来构造出num(N)这个数组}


实际实现的时候,就是这个数组的长度是不确定的,而用链表则插入起来太麻烦了

}
2007-08-03 09:45
bupthehe
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-8-2
收藏
得分:0 
哦,多谢
2007-08-03 10:24
快速回复:请教一下卧龙先生,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067928 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved