当先锋百科网

首页 1 2 3 4 5 6 7

1.算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。pac...

1. 算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定 A、B、C

三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。

package Question1_9;

import java.util.Scanner;

import java.util.Vector;

public class Question1 {

public static long count=0;

private void fullPermutation(Vectorsourse, Vector result) {

if(sourse.size()==0){

for (int i = 0; i < result.size(); i++) {

System.out.print(result.elementAt(i));

}

System.out.print("\n");

count++;

return;

}

for (int i = 0; i < sourse.size(); i++) {

Vectortsourse=new Vector(sourse);

Vectortresult=new Vector(result);

tresult.add(sourse.elementAt(i));

tsourse.remove(i);

new Question1().fullPermutation(tsourse, tresult);

}

}

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);

int n=scanner.nextInt();

Vector sourse=new Vector();

Vector result=new Vector();

for (int i = 0; i < n; i++) {

sourse.add((char)('A'+i));

}

讲一下这道题的思路或者注释下吧,不是很懂。谢谢,又是result,sourse,又是tresult,tsourse有点混乱。

展开