package sort;
import java.util.Arrays;
public class Test38_4 {
public static void main(String[] args) {
PL(new int[] {0,1,2,3,4});
}
public static void PL(int[] a) {
PL(a, 0);
}
private static void PL(int[] a, int i) {
// TODO Auto-generated method stub
if (i > a.length - 1) {
check(a);
}
for (int j = i; j < a.length; j++) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
PL(a, i + 1);
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
private static void check(int[] a) {
// TODO Auto-generated method stub
for (int i = 0; i < a.length; i++) {
for (int j = i+1; j < a.length; j++) {
if (i - j == a[i] - a[j] || j - i == a[i] - a[j])//如果横坐标和纵坐标的差距相同则为说明这两个点可能构成正方形,在对角线上
return;
}
}
System.out.println(Arrays.toString(a));
}
}