JAVA全排列

珍惜最爱的你 2017-01-07 08:01:38
如何对一个数组进行全排列
麻烦带点注释
...全文
138 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rickylin86 2017-01-08
  • 打赏
  • 举报
回复

public class Sort{
	public static void main(String[] args){
		String[] strs = {"A","B","C","D"};
		sort(strs);
	}

	private static void sort(String[] strs){
		sort(strs,0);
	}

	private static void sort(String[] strs,int index){
		if(index == strs.length){
			for(String str : strs){
				System.out.printf(str);
			}
			System.out.println();
			return;
		}
		String temp = null;
		for(int i = 0 ; i < strs.length ; i ++){
			for(int j = i + 1 ; j < strs.length ; j ++){
				temp = strs[i];
				strs[i] = strs[j];
				strs[j] = temp;

				sort(strs,index + 1);

				temp = strs[i];
				strs[i] = strs[j];
				strs[j] = temp;
			}
		}

	}
}
tianfang 2017-01-08
  • 打赏
  • 举报
回复
看看Arrays的sort方法
珍惜最爱的你 2017-01-08
  • 打赏
  • 举报
回复
引用 2 楼 rickylin86 的回复:

public class Sort{
	public static void main(String[] args){
		String[] strs = {"A","B","C","D"};
		sort(strs);
	}

	private static void sort(String[] strs){
		sort(strs,0);
	}

	private static void sort(String[] strs,int index){
		if(index == strs.length){
			for(String str : strs){
				System.out.printf(str);
			}
			System.out.println();
			return;
		}
		String temp = null;
		for(int i = 0 ; i < strs.length ; i ++){
			for(int j = i + 1 ; j < strs.length ; j ++){
				temp = strs[i];
				strs[i] = strs[j];
				strs[j] = temp;

				sort(strs,index + 1);

				temp = strs[i];
				strs[i] = strs[j];
				strs[j] = temp;
			}
		}

	}
}
谢谢 回去多瞅瞅0.0
珍惜最爱的你 2017-01-08
  • 打赏
  • 举报
回复
引用 1 楼 pany1209 的回复:
递归吧。。。。
在补习递归
李德胜1995 2017-01-07
  • 打赏
  • 举报
回复
递归吧。。。。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧