全排列算法-递归与字典序的实现方法(Java)
当m=n时所有的排列情况叫全排列。{1,2,3},{1,3,2},{2,1,3},{2,3,1},{3,1,2},{3,2,1}。-----------------------------------------------递归方法会对重复元素进行交换比如使用递归对{1,1}进行全排序会输出:{1,1},{1,1}两个重复的结果。然后从右向左找到第一个非递增的数,4,3,因为3比4小,交换3、4,并且对3后面的数进行逆序排列,第二个排列为{1,2,4,3},再从右向左3,4,2,发现2比4小,交换从右向左第一个比2大的数,交换后{1,3,4,2}再对3后面的数进行逆序排列第三个序列为:{1,3,2,4}依次循环直到数组成为完全递减数组结束1、2、3、4字典排序的最大序列为{4,3,2,1}。
用户评论