全排列的算法(有重复数据)
n个有重复元素全排列:无重复的全排列为序列头元素与所有元素进行交换共n种情况,每种情况的后n-1位元素构成新的序列。 重复以上过程。因为有重复元素,想要序列不重复:(1)需要保证序列头元素与其余元素一次交换前后的序列头元素不相同,即除与自身交换外,两个相同元素不交换;(2)多次交换中不与同一元素进行第二次交换;上述条件保证了头元素与其余元素交换的过程中,相同元素不会重复出现在头部。
n个有重复元素全排列:无重复的全排列为序列头元素与所有元素进行交换共n种情况,每种情况的后n-1位元素构成新的序列。 重复以上过程。因为有重复元素,想要序列不重复:(1)需要保证序列头元素与其余元素一次交换前后的序列头元素不相同,即除与自身交换外,两个相同元素不交换;(2)多次交换中不与同一元素进行第二次交换;上述条件保证了头元素与其余元素交换的过程中,相同元素不会重复出现在头部。