排列生成(stl).cpp

来自「产生全排列的程序」· C++ 代码 · 共 27 行

CPP
27
字号
#include <iostream>
#include <algorithm>
#include <cassert>
//#include <stdio.h>
using namespace std;
const int MAX_N = 20;

int main() {
	int i, n,// A[MAX_N]={3,2,1,5,4};    //给次数组赋值,控制输出对象(输出比32154小的排列)
		 A[MAX_N]={4,1,3,2}; 
  cin >> n;
  int count=0;
//  assert(n < MAX_N);  //当n>=MAX_N时报错
//  for (i = 0; i < n; i++) A[i] = i;
  do {
	  for (i = 0; i < n; i++) cout << A[i] << ' ';
      cout << endl;
	  count++;
//  } while (next_permutation(&A[0], &A[n]));
  }while (prev_permutation(&A[0], &A[n]));   //从开始位置按字典排序输出前面的排列(并不容易控制输出到什么时候为止)
  cout<<count<<endl;
//  getchar();
  return 0;
}
     

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?