STL算法:next_permutation求全排列

next_permutation:由原排列得到字典序中下一次最近排列

int main() {
    int a[] = {1, 2, 3};
    do {
        cout << a[0] << " " << a[1] << " " << a[2] << endl;
    } while (next_permutation(a, a + 3));
    return 0;
}
/*1 2 3
  1 3 2
  2 1 3
  2 3 1
  3 1 2
  3 2 1*/

prev_permutation:由原排列得到字典序中上一次最近排列

int main() {
    int a[] = {3, 2, 1};
    do {
        cout << a[0] << " " << a[1] << " " << a[2] << endl;
    } while (prev_permutation(a, a + 3));
    return 0;
}
/*3 2 1
  3 1 2
  2 3 1
  2 1 3
  1 3 2
  1 2 3*/

 

posted @ 2019-03-07 18:00  oc_co  阅读(154)  评论(0编辑  收藏  举报