public class EG02 {
//全排列
//k当前关注点
public static void f2(char[] data,int k) {
if (k==data.length) {
for (int i = 0; i < data.length; i++) {
System.out.print(data[i]);
}
System.out.println();
}
for (int i = k; i < data.length; i++) {
if (IsSwap(data, k, i)) {
//试探
char t = data[k];
data[k] = data[i];
data[i] = t;
f2(data, k+1);
//回溯
t = data[k];
data[k] = data[i];
data[i] = t;
}
}
}
public static boolean IsSwap(char []data, int nBegin, int nEnd)
{
for (int i = nBegin; i < nEnd; i++)
if (data[i] == data[nEnd])
return false;
return true;
}
public static void main(String[] args) {
char[] data = "ABB".toCharArray();
f2(data,0);
}
}
递归实现全排列
最新推荐文章于 2022-05-19 21:32:27 发布