我最近研究了Quickperm算法迭代生成一个字符串的排列,而this除了{{3}}之外没有非常详细/解释,我找不到任何其他更清楚解释它的来源。 另外我想通过简单地检查我们交换的值是否相同,将处理字符串中存在重复字符的情况,但是仍会出现重复的排列。
有人能指出如何删除重复项并提供其他一些来源或解释quickperm算法吗?
答案 0 :(得分:1)
在生成排列时似乎不可能即时进行,在QuickPerm中,最好的选择是在每个完全生成的排列后继续添加到集合中,以继续删除重复项。
答案 1 :(得分:0)
使用enumerating permutations in lexicographic order的标准算法。像许多聪明的算法一样,QuickPerm很脆弱;对于有重复的情况,不能轻易推广。