飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

java输入几个数,有多少种排序方法

时间:2021-11-10  作者:匿名  
package 域名;

import 域名ner;
import 域名or;

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

public class Qeustion1 {

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

	public static long count = 0;

	private void fullPermutation(Vector<Character> sourse, Vector<Character> result) {
		if (域名() == 0) {
			for (int i = 0; i < 域名(); i++) {
				域名t(域名entAt(i));
			}
			域名t("\\n");
			count++;
			return;
		}

		for (int i = 0; i < 域名(); i++) {
			Vector<Character> tsourse = new Vector<Character>(sourse);
			Vector<Character> tresult = new Vector<Character>(result);
			域名(域名entAt(i));
			域名ve(i);
			new Qeustion1().fullPermutation(tsourse, tresult);
		}
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(域名);
		int n = 域名Int();
		Vector<Character> sourse = new Vector<Character>();
		Vector<Character> result = new Vector<Character>();
		for (int i = 0; i < n; i++) {
			域名((char) (\'A\' + i));
		}

		new Qeustion1().fullPermutation(sourse, result);

		域名tln(域名t);

	}

}/*
	 * 首先你要弄清楚sourse 里面装的什么, int n=域名Int(); n 是你输入的数字, 如果你输入 100. 那么,
	 * for (int i = 0; i < n; i++) { 域名((char)(\'A\'+i)); } sourse 里面就有100
	 * 个数据 A1,A2,A3....A100. 这样. 然后进入到fullPermutation() 方法,
	 * 
	 * 初始进入的时候 域名 是不可能=0 的. 所以往下走, 进入下面这个代码
	 * 
	 * for (int i = 0; i < 域名(); i++) { 这个地方域名() 其实就是等于你输入的N ,
	 * 就是100 ,
	 * 
	 * Vector<Character>tsourse=new Vector<Character>(sourse); 创建一个新的 tsourse
	 * 对象, new 的时候传值, 调用构造方法。 你这个地方可以理解为tsourse = sourse;
	 * 
	 * Vector<Character>tresult=new Vector<Character>(result); 这个地方同理
	 * 
	 * 域名(域名entAt(i)); tresult 集合中放入 sourse 的数据,就是A1-A100,
	 * 
	 * 域名ve(i); tsourse 清除里面所有的数据。 所以这个时候域名 ==0;
	 * 
	 * new Question1().fullPermutation(tsourse, tresult); 重复调用fullPermutation()
	 * 方法,
	 * 
	 * 注意. 这个时候tsourse .size() 是== 0 的; 也就是下面的 sourse = 0; 所以.
	 * 进入fullPermutation()方法后会执行这个代码 if(域名()==0){ for (int i = 0; i <
	 * 域名(); i++) { 域名t(域名entAt(i)); }
	 * 域名t("\\n"); count++; return; 运行完毕之后就会return, 不会运行下面的代码。 程序停止
	 * }
	 * 
	 * 总结一下: 不要太在意变量的名字, 弄清楚值的传递,
	 */
标签:java
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。