您的位置:首页 > 其它

分治算法实现对一个数进行字典全排序

2016-10-22 10:49 204 查看
package com.company.Puzzal;

import java.util.Arrays;

/**
* Created by likailong on 2016/10/22.
* 按照字典全排列  用分治法
*/
class GenerateP{
private int n;  //  求 1-n所有数字的全排列
private final int maxn = 110;//最多可排列组合的长度  1-100
private boolean [] hashTable;
private int [] p;
public GenerateP(int n) {
this.n = n;
hashTable = new boolean[maxn];
p = new int [maxn];
Arrays.fill(hashTable, false);
Arrays.fill(p, 0);
}
public void generatep(int index){//用递归实现
if(index == n + 1){
for(int i = 1; i <= n; i++){
System.out.print(p[i]);
}
System.out.println();
return;
}

for(int x = 1; x <= n; x++){
if(hashTable[x] == false){
p[index] = x;
hashTable[x] = true;
generatep(index + 1);
hashTable[x] = false;
}
}
}
}
public class Fenzhi {
public static void main(String[] args) {GenerateP generateP = new GenerateP(3);
generateP.generatep(1);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐