首页 > 代码库 > 分治法实现1-N的数字按字典序全排列组合 Java语言
分治法实现1-N的数字按字典序全排列组合 Java语言
package 分治法;import java.util.Arrays;/* * 将数字 1 - n进行全排列 按字典序从小到大输出 * 如 1 - 3 * 123 132 213 231 312 321 */class GenerateP{ private int n; // 求 1-n所有数字的全排列 private final int maxn = 110;//最多可排列组合的长度 1-100 private boolean [] hashTable; private int [] p; public GenerateP(int n) { // TODO Auto-generated constructor stub 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 Main { public static void main(String[] args) { // TODO Auto-generated method stub GenerateP generateP = new GenerateP(3); generateP.generatep(1); }}
分治法实现1-N的数字按字典序全排列组合 Java语言
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。