当前位置: 代码迷 >> Java相关 >> 有个算法不会,求大牛解答(JAVA 或C都行),给个思路或者代码都行,多谢
  详细解决方案

有个算法不会,求大牛解答(JAVA 或C都行),给个思路或者代码都行,多谢

热度:7589   发布时间:2013-02-25 21:46:49.0
有个算法不会,求大牛解答(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
}
}
  相关解决方案