1、求1~N的全排列 

    (1)我们先从最简单的例子看起:1,2 两个数的情况,显然有1--2, 2--1,两种排列,即1和2交换一下。

    1,2,3 三个数的情况:

    1--2--3

    1--3--2   //固定第一个数,递归的求后两个数的组合,2和3交换一下 

    2--1--3   //1,2 交换

    2--3--1   //固定2, 递归求两个数的组合,交换1,3 

    3--2--1   //1和3交换

    3--1--2   //固定3, 递归求两个数的组合,交换2,1

    将上述过程转换为代码:

 

0] = tmp;
    }

相关文章: