用类似于Bubble sort排序,先检查相邻的两个元素,如果前一个*i与比后一个*ii小,可以交换调整。 next_permutation从最后一个元素开始,找到一个大于*i的元素(该元素可能比*ii还小),将该元素与*i交换,最后反转排列*ii后的元素。
这里用的是int*指针,可以写成模板,对char的字符数组也能返回下一排列组合。这里参考了STL的next_permutation算法.
产生前一排列组合也可以用类似的想法。
用类似于Bubble sort排序,先检查相邻的两个元素,如果前一个*i与比后一个*ii小,可以交换调整。 next_permutation从最后一个元素开始,找到一个大于*i的元素(该元素可能比*ii还小),将该元素与*i交换,最后反转排列*ii后的元素。
这里用的是int*指针,可以写成模板,对char的字符数组也能返回下一排列组合。这里参考了STL的next_permutation算法.
产生前一排列组合也可以用类似的想法。
3049
6288
1万+

被折叠的 条评论
为什么被折叠?