一、思想——全排列
依次将待排列的数组的后n-1个元素分别与与第一个元素交换,则每次递归处理的都是后n-1个元素的全排列。当数组元素仅有一个e为此递归算法的出口。
也就是说交换的步骤是这样的:
(1)第一个数与第一个数交换,然后对第一个数后面的所有数进行排列。当对后面的数进行排列的时候,将这组数据中的第一个数与第一个数交换.....这样一直交换下去,当只剩一个数据的时候输出,即第一次得到的结果就是原数组
(2)整个数组中的第二个数与第一个数进行交换,对交换后得到的数组中从第二个数开始再进行第(1)步
(3)这次就是第三个数与第一个数交换....
(4)依次这样交换下去,但是要注意的是在每次交换后得出一组排序结构之后,都要再将数据交换回去,变成原数组,再进行下一轮的交换