日期:2014-05-20  浏览次数:20643 次

有个算法不会,求大牛解答(JAVA 或C都行),给个思路或者代码都行,谢谢
构造全排列的方法:


算法1:减一治从底向上构造排列

假设n-1个元素的排列已经生成好,那么将第n个元素插入到每一个排列项的不同位置,就得到一个新的排列项。举个例子:

开始:1

 

插入2:12 21

  从右到左

插入3 123 132 312 321 231 213

  从右到左 从左到右

 

 

注意这可以递归的定义,用二维数组的第一维表示一个排列项,第二维表示排列项的每一位。






------解决方案--------------------
String[] numbers = "1";

for(int i=0;i<numbers.length();i++){


}
------解决方案--------------------
String[] numbers = "1";
String genNum = "";
String insertNum = "2";
for(int i=0;i<numbers.length();i++){
for(int j=0;j<numbers[i].length;j++){
// 随j的变化将插入数放到相应位置 再附给 numbers
}
}