全排列问题
来源:互联网 发布:淘宝店铺怎么开通分期 编辑:程序博客网 时间:2024/06/05 00:37
用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,
如 abc 的全排列: abc, acb, bca, dac, cab, cba
递归实现:
用123来示例下。123的全排列有123、132、213、231、312、321这六种。首先考虑213和321这二个数是如何得出的。显然这二个都是123中的1与后面两数交换得到的。然后可以将123的第二个数和每三个数交换得到132。同理可以根据213和321来得231和312。因此可以知道——全排列就是从第一个数字起每个数分别与它后面的数字交换。
- #include<iostream>
- using namespace std;
- #include<assert.h>
- void Permutation(char* pStr, char* pBegin)
- {
- assert(pStr && pBegin);
- if(*pBegin == '\0')
- printf("%s\n",pStr);
- else
- {
- for(char* pCh = pBegin; *pCh != '\0'; pCh++)
- {
- swap(*pBegin,*pCh);
- Permutation(pStr, pBegin+1);
- swap(*pBegin,*pCh);
- }
- }
- }
- int main(void)
- {
- char str[] = "abc";
- Permutation(str,str);
- return 0;
- }
0 0
- 全排列问题
- 全排列问题
- 字符串全排列问题
- 全排列问题
- 字符串全排列问题
- 全排列问题实现
- 全排列问题
- 全排列问题
- 递归 全排列 问题
- 全排列问题
- 全排列问题
- 全排列问题浅谈
- 全排列问题
- 全排列问题
- 全排列问题
- 全排列问题
- 全排列问题(0907)
- 全排列问题
- python 引发异常 raise()及异常处理
- POJ - 3420 Quad Tiling (矩阵快速幂)
- Android 沉浸式状态栏
- 【转载】Android安全攻防战,反编译与混淆技术完全解析(下)
- Anroid studio遇到的问题1---图片mergeDebugResources出错
- 全排列问题
- VC++操作MSWORD
- 工作一个月的心得体会
- OpenCV学习笔记:opencv_core模块
- Android开发中HTTP协议HttpPost向服务器发送JSon数据格式的数据
- Java中如何遍历Map对象的4种方法
- matlab图像处理特殊命令
- haproxy hdr_beg 配置
- 数据结构实验之排序六:希尔排序