C++ STL 快速实现全排列

目的

输入n个数,对这n个数进行全排列。

样例输入

3

3 2 1

样例输出

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

实现

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int N = 10;


int main() {
	int n, a[N];
	cin >> n;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	sort(a + 1, a + n + 1);
	do {
		for (int i = 1; i <= n; i++) {
			if (i != 1)			
				cout << " ";
			cout << a[i];
		}
		cout << endl;
	} while (next_permutation(a + 1, a + n + 1));
	return 0;
}

利用STL库里的next_permutation函数实现数组或者容器的全排列。

cpp 复制代码
next_permutation(起始地址, 终点位置); // 执行一次可以更改一次数组的内容,即改变至下一种排列
相关推荐
xiaoye-duck5 分钟前
C++入门基础指南:引用全解析(从入门到精通)
c++
点我头像干啥7 分钟前
机器学习算法之动量法:优化梯度下降的“惯性”策略
人工智能·神经网络·算法·机器学习
XFF不秃头14 分钟前
力扣刷题笔记-下一个排列
c++·笔记·算法·leetcode
Lv117700815 分钟前
Visual Studio中Array数组的常用查询方法
笔记·算法·c#·visual studio
hn小菜鸡20 分钟前
LeetCode 1306.跳跃游戏III
算法·leetcode·游戏
Swift社区20 分钟前
LeetCode 450 - 删除二叉搜索树中的节点
算法·leetcode·职场和发展
长安er26 分钟前
LeetCode 46/51 排列型回溯题笔记-全排列 / N 皇后
笔记·算法·leetcode·回溯·递归·n皇后
天赐学c语言26 分钟前
12.16 - 全排列 && C语言中声明和定义的区别
c++·算法·leecode
LYFlied27 分钟前
【每日算法】LeetCode 146. LRU 缓存机制
前端·数据结构·算法·leetcode·缓存
a努力。35 分钟前
小红书Java面试被问:ThreadLocal 内存泄漏问题及解决方案
java·jvm·后端·算法·面试·架构