Java实现的字符串全排列算法
当前第n个层次的全排列,n=0
[1, 2, 3] 当前递归开始交换前的序列.
[1, 2, 3] 开始递归下一层前,交换了i和n后的序列.其中n=0 i=0 n表示当前是第n次循环,i表示第n次循环的第i趟比较
当前第n个层次的全排列,n=1
[1, 2, 3] 当前递归开始交换前的序列.
[1, 2, 3] 开始递归下一层前,交换了i和n后的序列.其中n=1 i=1 n表示当前是第n次循环,i表示第n次循环的第i趟比较
当前第n个层次的全排列,n=2
[1, 2, 3] 当前递归开始交换前的序列.
[1, 2, 3] 开始递归下一层前,交换了i和n后的序列.其中n=2 i=2 n表示当前是第n次循环,i表示第n次循环的第i趟比较
[1, 2, 3]
[1, 2, 3] 子递归结束后,恢复交换前的序列. 这是第n层次的循环,此时n=2
[1, 2, 3] 子递归结束后,恢复交换后的序列. 这是第n层次的循环,此时n=2
[1, 2, 3] 子递归结束后,恢复交换前的序列. 这是第n层次的循环,此时n=1
[1, 2, 3] 子递归结束后,恢复交换后的序列. 这是第n层次的循环,此时n=1
当前第n个层次的全排列,n=1
[1, 2, 3] 当前递归开始交换前的序列.
[1, 3, 2] 开始递归下一层前,交换了i和n后的序列.其中n=1 i=2 n表示当前是第n次循环,i表示第n次循环的第i趟比较
当前第n个层次的全排列,n=2
[1, 3, 2] 当前递归开始交换前的序列.
[1, 3, 2] 开始递归下一层前,交换了i和n后的序列.其中n=2 i=2 n表示当前是第n次循环,i表示第n次循环的第i趟比较
[1, 3, 2]
[1, 3, 2] 子递归结束后,恢复交换前的序列. 这是第n层次的循环,此时n=2
[1, 3, 2] 子递归结束后,恢复交换后的序列. 这是第n层次的循环,此时n=2
[1, 3, 2] 子递归结束后,恢复交换前的序列. 这是第n层次的循环,此时n=1
[1, 2, 3] 子递归结束后,恢复交换后的序列. 这是第n层次的循环,此时n=1
[1, 2, 3] 子递归结束后,恢复交换前的序列. 这是第n层次的循环,此时n=0
[1, 2, 3] 子递归结束后,恢复交换后的序列. 这是第n层次的循环,此时n=0