permutation.java

来自「《算法设计与分析》王晓东编著」· Java 代码 · 共 46 行

JAVA
46
字号
import java.util.Scanner;


public class Permutation {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		System.out.print("Please input the length of the array:");
		int n = in.nextInt();
		if(n <= 0)
		{	System.out.print("Invalid value!");
			return;		
		}
		int[] array = new int[n];
		for(int i=0;i<n;i++)
		{	System.out.print("array["+i+"] = ");
			array[i] = in.nextInt();
		}
		permute(array,0);
	}
	public static void swap(int[] array,int i,int j){
		int temp = array[i];
		array[i] = array[j];
		array[j] = temp;
	}
	public static void permute(int[] array,int k){
		int n = array.length;
		if(k>=n-1){
			for(int i=0;i<n;i++)
				System.out.print(array[i]+"\t" );
			System.out.println();
			return;
		}
		for(int i=k;i<n;i++){
			swap(array,i,k);
			permute(array,k+1);
			swap(array,i,k);
		}
		
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?