private static void swap(char[] str, int i, int j){
char tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
public static void permute(String str){
permute(str.toCharArray(), 0, str.length());
}
private static void permute(char[] str, int low, int high){
if(low == high){
System.out.println(str);
} else {
for(int i = low; i < high; i++){
swap(str, low, i);
permute(str, low+1, high);
swap(str, low, i);
}
}
}
我实现了一个字符串排列的递归方法。但是我有一个问题:如何使用归纳证明这段代码的正确性?我真的不知道。如何证明递归算法的正确性?
可能有帮助:http://stackoverflow.com/questions/7699692/proof-by-induction-of-pseudo-code – jbabey 2013-03-12 12:25:34