您的位置:首页 > 编程语言 > Java开发

Java实现数组的全排列

2016-06-21 23:29 399 查看

        今天在做课设任务时间表的时候,算法遇到点问题,有时候有些算法在没有想到的时候可以先用最没效率的方法测试一下,数组的全排列就是其中一种。

public class Test {
static String[] array = { "A", "B", "C" };
public static void main(String[] args) {
getAllOrder(0, array.length - 1);
}
public static void getAllOrder(int begin, int end) {
if (begin == end) {
check();
} else {
for (int i = begin; i <= end; i++) {
// 交换数据
swap(begin, i);
getAllOrder(begin + 1, end);
swap(i, begin);
}
}
}
public static void swap(int from, int to) {
// 这里应该加上各种防止无效交换的情况
// 比如位置相同,或者2个位置的数据相同
if (from == to) {
return;
}
String tmp = array[from];
array[from] = array[to];
array[to] = tmp;
}
public static void check() {
// 排列拿到了,可以进行你的判断了。
System.out.println(Arrays.toString(array));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息