java算法——字符组合排序

文章作者 100test 发表时间 2011:03:18 19:40:20
来源 100Test.Com百考试题网


  编辑特别推荐:

  #0000ff>Java加载和实例化以及构造函数

  #0000ff>关于计算Java程序运行时间

  #0000ff>深入理解Java加载类的机制

  题目:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。

  不是特别难的题目,暴力算和用图论算(深度遍历)都可以,结果是198.图论的话就是构造无向图,然后深度优先递归。

  package com.graphic.

  import java.util.Iterator.

  import java.util.TreeSet.

  public class CharSequence {

  private String[] c = {"1","2","2","3","4","5"}.

  private int n = c.length.

  private boolean[] visited = new boolean[n].

  private int[][] g = new int[n][n].

  private TreeSet ts = new TreeSet().

  private String result = "".

  public CharSequence(){

  for(int i=0. i

  for(int j=0. j

  if(i == j) g[i][j] = 0.

  else g[i][j] = 1.

  }

  }

  g[3][5] = 0.

  g[5][3] = 0.

  }

  public void depthFirst(int index){

  visited[index] = true.

  result = c[index].

  if(result.length() == n){

  ts.add(result).

  result = result.substring(0,result.length()-1).

  visited[index] = false.

  }

  else{

  for(int i=0. i

  if(!visited[i]


相关文章


JS获取单选与多选按纽的值
Java垃圾收集算法与内存泄露
深入理解Java加载类的机制
Java实现通用组合算法
java算法——字符组合排序
JAVA组合算法
java继承容易犯的错误
获取Servlet对象
JAVA中的main函数详细讲解
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛