Java实现的字符串全排列算法

时间:2024-10-10 07:46:26
当前第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