全排列的算法思想
来源:互联网 发布:激战2人类男捏脸数据库 编辑:程序博客网 时间:2024/06/07 04:09
前几天的一道面试题目,要求输入4个数进行全排列并进行按行输出,精髓在于运用递归的思想。
1,2两个数的全排列是{1,2}、{2,1},1,2,3三个数的全排列是{1,2,3}、{1,3,2}、{2,1,3},{2,3,1}、{3,1,2}、{3,2,1},根据以上规律可以看出,假如有n个数则它的全排列是以n个数开头的(n-1)的全排列,以此类推
以下个人的代码片段:#include <iostream> #include <algorithm> using namespace std;int n = 0;bool IsSwap(int list[], int k, int m){for (int i = k; i < m; i++)if (list[i] == list[m])return true;return false;}void FullPerm(int list[], int k, int m){if (k == m){for (int i = 0; i < 3; i++)cout << list[i] << " ";cout << endl;n++;}else{for (int i = k; i <= m; i++){if (!IsSwap(list, k, i)){swap(list[i], list[k]);FullPerm(list, k + 1, m);swap(list[i], list[k]);}}}}int main(){int list[4] = { 1,2,3,4 };FullPerm(list, 0, 3);cout << "全排列数量:" << n << endl;system("pause");return 0;}
阅读全文
0 0
- 全排列算法的思想
- 全排列的算法思想
- 全排列的算法思想和实现
- 全排列算法思想和实现
- 全排列递归思想
- 全排列算法的思想和C语言的代码实现
- 全排列算法的字典序排列
- 一个全排列的算法!
- 字符串的全排列算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列的生成算法
- 全排列算法的理解
- 全排列算法的理解
- 全排列的生成算法
- 全排列的应用算法
- 全排列的生成算法
- 20171014Redis学习总结
- [Django]models中定义的choices 字典在页面中显示值
- 剑指offer系列(1)——单例模式实现
- JavaScript DOM操作表格案例
- Docker下安装Rockmongo,图形化操作mongodb
- 全排列的算法思想
- 内存泄漏弄个明白
- 周总结 17/10/8-17/10/14
- 哈哈日语 五十音图之あ段音
- linux(一)
- svn之迁移代码技巧
- /Users/devzkn/.ssh 的config 配置备份
- 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯 的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说
- Codeforces 155E E. Double Profiles【思维+hash】