题目描述
给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。
现在,请你按照字典序将所有的排列方法输出。
输入格式
共一行,包含一个整数n。
输出格式
按字典序输出所有排列方案,每个方案占一行。
数据范围
1≤n≤9
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void permute(vector<int> nums, int i, vector<vector<int>>& perms) {
if (i == nums.size()) {
perms.push_back(nums);
} else {
for (int j = i; j < nums.size(); j++) {
swap(nums[i], nums[j]);
permute(nums, i + 1, perms);
}
}
}
int main() {
int n;
cin >> n;
vector<int> nums(n, 0);
for (int i = 1; i <= n; i ++) {
nums[i - 1] = i;
}
vector<vector<int>> perms;
permute(nums, 0, perms);
for (vector<int> l : perms) {
for (int a : l) {
cout << a << ' ';
}
cout << endl;
}
return 0;
}