C++ STL 快速实现全分列

打印 上一主题 下一主题

主题 727|帖子 727|积分 2181

目的

  输入n个数,对这n个数进行全分列。
  样例输入

  3
  3 2 1
  样例输出

  1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
    实现

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N = 10;
  4. int main() {
  5.         int n, a[N];
  6.         cin >> n;
  7.         for (int i = 1; i <= n; i++)
  8.                 cin >> a[i];
  9.         sort(a + 1, a + n + 1);
  10.         do {
  11.                 for (int i = 1; i <= n; i++) {
  12.                         if (i != 1)                       
  13.                                 cout << " ";
  14.                         cout << a[i];
  15.                 }
  16.                 cout << endl;
  17.         } while (next_permutation(a + 1, a + n + 1));
  18.         return 0;
  19. }
复制代码
 利用STL库里的next_permutation函数实现数组大概容器的全分列。
  1. next_permutation(起始地址, 终点位置); // 执行一次可以更改一次数组的内容,即改变至下一种排列
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表