全排列
来源:互联网 发布:淘宝上最火的男装店铺 编辑:程序博客网 时间:2024/04/30 20:08
Problem
Print all permutations of n distinct elements.
Solution
// Permutaion.cpp : Defines the entry point for the console application.//#include <iostream>#include <vector>#include <iterator>using namespace std;void Swap(vector<char>& vec, int posA, int posB){ char temp = vec[posA]; vec[posA] = vec[posB]; vec[posB] = temp;}void Permutation(vector<char>& vec, int count){ if(vec.size() == 0){ cout << "Empty character set" << endl; } else if(vec.size() == 1){ cout << vec[0] << endl; return; } if(count == vec.size()){ copy(vec.begin(), vec.end(), ostream_iterator<char>(cout, " ")); cout << endl; return; } for(int i = count; i < vec.size(); i ++){ Swap(vec, count, i); Permutation(vec, count + 1); Swap(vec, count, i); }}int main(int argc, char* argv[]){ for(int i = 0; i < 5; ++ i){ vector<char> vec; for(int j = 0; j < i; ++j){ vec.push_back('A' + j); } cout << "Characters in set: " << endl; copy(vec.begin(), vec.end(), ostream_iterator<char>(cout, " ")); cout << endl << "Permuations: " << endl; Permutation(vec, 0); }return 0;}
Output
Characters in set:Permuations:Empty character setCharacters in set:APermuations:ACharacters in set:A BPermuations:A BB ACharacters in set:A B CPermuations:A B CA C BB A CB C AC B AC A BCharacters in set:A B C DPermuations:A B C DA B D CA C B DA C D BA D C BA D B CB A C DB A D CB C A DB C D AB D C AB D A CC B A DC B D AC A B DC A D BC D A BC D B AD B C AD B A CD C B AD C A BD A C BD A B CPress any key to continue . . .
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- Android------startActivityForResult的详细用法
- ubuntu中文输入法install
- java.net.SocketException: Broken pipe报错可能的原因
- 看《墨攻》理解IoC—Spring底层核心
- 一定要记得关session!
- 全排列
- JavaScript+CSS实现网页换肤功能
- mysql数据导入导出命令
- comparator对list排序
- Servlet 输出中文乱码解决
- ie6下提示没有权限的一种原因和相应的解决办法
- 纯CSS搞定按钮、链接点击时的虚线
- 出现java.lang.NoClassDefFoundError的错误的一种原因和解决办法
- 在C/C++程序里打印调用栈信息