集合的全排列(Java实现)

给定一个集合,求得集合的全排列

具体的代码如下:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print("请输入一个数组,使用空格分割:");
		Scanner scanner = new Scanner(System.in);
		String rawInput = scanner.nextLine();//使用nextLine只会将Enter当做结束符
		String[] perm = rawInput.split(" ");
		perm(perm,0,perm.length-1);
	}
	static void perm(String list[],int k,int m){
		if(k==m){//没有到最后一个   所以还需要进行排列
			for(int i = 0;i<list.length;i++)
				System.out.print(list[i]+" ");
			System.out.println();
		}else{//进行排列
			for(int i = k;i<=m;i++){
				String c = list[i];//进行交换  从而完成全排列 
				list[i] = list[k];
				list[k] = c;
				perm(list,k+1,m);
				c = list[i];//需要交换回来 不然就会乱了顺序
				list[i] = list[k];
				list[k] = c;
			}
		}
	}

发布了20 篇原创文章 · 获赞 2 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_39056803/article/details/80868398
今日推荐