8.3—暴力枚举法—Permutations

来源:互联网 发布:linux下的下载工具 编辑:程序博客网 时间:2024/06/07 06:00
描述
Given a collection of numbers, return all possible permutations.
For example, [1,2,3] have the following permutations: [1,2,3], [1,3,2], [2,1,3], [2,3,1],
[3,1,2], and [3,2,1].

#include<iostream>#include<vector>#include<iomanip>using namespace std;void swap(int &a, int &b){int temp = a;a = b;b = temp;}void Permutations(int a[], int from, int to){if (a == NULL)return;if (from == to){for (int i = 0; i <= to; i++)cout << a[i];cout << endl;}else{for (int i = from; i <= to; i++){swap(a[from], a[i]);Permutations(a, from + 1, to);swap(a[from], a[i]);}}}int main(){const int n = 3;int a[n] = { 1, 2,3 };int from = 0;int to =n-1;Permutations(a, from, to);}