「这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战」
std::next_permutation
它用于将范围 [first, last) 中的元素重新排列为下一个字典序更大的排列。一个排列是 N! 元素可以采用的可能排列(其中 N 是范围内的元素数)。不同的排列可以根据它们在字典上相互比较的方式进行排序。代码的复杂度为 O(n*n!),其中还包括打印所有排列。
语法:
1 | c++复制代码模板 |
应用: next_permutation 是为给定的值数组找到下一个字典序更大的值。
例子:
1 | c++复制代码输入:1 2 3 的下一个排列是 |
1 | c++复制代码#include <algorithm> |
输出:
1 | c++复制代码3!3个元素的可能排列: |
std::prev_permutation
它用于将范围 [first, last) 中的元素重新排列为前一个按字典顺序排列的排列。一个排列是 N! 元素可以采用的可能排列(其中 N 是范围内的元素数)。不同的排列可以根据它们在字典上相互比较的方式进行排序。
语法 :
1 | c++复制代码模板 |
应用: prev_permutation 是为给定的值数组找到以前的字典序较小的值。
例子:
1 | c++复制代码输入:3 2 1的prev排列是 |
1 | c++复制代码#include <algorithm> |
输出:
1 | c++复制代码3!3个元素的可能排列: |
本文转载自: 掘金