所有排列,并找到最低数字c ++

时间:2015-01-10 11:21:25

标签: c++ std permutation

我正在编程c ++,我想这样做:

我的意见:

213

我想创建所有排列并生成最小数字。像:

123 -> lowest number
132
231
213
312
321

我可以使用next_permutation (std library),但是,这是最有效的方法吗?

1 个答案:

答案 0 :(得分:0)

不像Kerrek SB说你可以对它进行排序并采取它(默认提升)。

std::vector<int> input = {
    4, 3, 9, 1
};
std::sort(std::begin(input), std::end(input));

有关详细信息,请参阅:std::sort。如果你确实需要所有的排列,你可以在排序的输入上使用std::next_permutation,它将永远是第一个。