C++:数组排列组合的问题。
2015-09-17 23:36
585 查看
//求一个长度为n的数组中长度为m的所有排列组合。 #include <iostream> #include <stack> using namespace std; stack<int> st; void Grial(int a[], int m,int n, int length) { if (st.size() == 3) { stack<int> temp = st; while (temp.empty() == false) { cout << temp.top() << " "; temp.pop(); } cout << endl; return; } else { for (int i = m; i < n; i++) { st.push(a[i]); Grial(a, i+1,n, length); st.pop(); } } } int main() { int a[] = {1,2,3,4,5,6,7}; Grial(a,0, sizeof(a) / sizeof(int), 3); }*/ //求一个数组的全排列,代码情况如下: #include <iostream> using namespace std; void Grial(int a[], int n,int m) { if (n == m) { for (int i = 0; i < m; i++) { cout << a[i] << " "; } cout << endl; } else { for (int i = n; i < m; i++) { std::swap(a[i],a ); Grial(a,n+1,m); std::swap(a[i],a ); } } } int main() { int a[] = { 1, 2, 3, 4 }; Grial(a, 0,sizeof(a) / sizeof(int)); return 0; }
相关文章推荐
- 插入排序(C/C++)
- const在函数前与函数后的区别
- c++设计模式----Decorator(装饰)
- C语言 可变长度的数组 -2
- TwinCAT 3中基于UDP协议通讯的C++实现
- Leetcode之String to Integer (atoi)
- C++面试题
- 字符替换 利用c++string类型
- 关于C语言中数据类型的转化方式
- C语言中的break、continue和goto语句
- C++Primer Plus 第十一章-运算符重载和友元函数
- C语言中经常遇到的问题:执行时显示进度条,然后卡住
- C语言中的switch语句
- C/C++堆栈详解
- 问题之编程语言_c语言_无符号计算
- C++基础知识总结----类的进阶知识点
- C语言 输入n,分别用*输出边长为n的实心菱形和空心菱形
- 黑马程序员-----------C语言基础-----------C语言实战(C语言版通讯录)
- C++带模板结构体 类型重定义*
- C++的6种位运算符