递归实现全排列
2016-03-19 10:40
190 查看
#include <stdio.h> #include <string.h> static void swap(char* pchar1, char* pchar2) { //交换数组的两个数 char tmp = *pchar1; *pchar1 = *pchar2; *pchar2 = tmp; } void permutation(char* pchar, int begin, int length) { int i; if(begin == length) { //当只剩下一个元素时,打印数组 printf("%s\n", pchar); return; } for(i = begin; i <= length; i++) { swap(&pchar[begin], &pchar[i]); permutation(pchar, begin+1, length); swap(&pchar[begin], &pchar[i]); } } int main() { char arr[] = "abc"; permutation(arr, 0, strlen(arr)-1); }
相关文章推荐
- 敏捷开发需要编写文档吗?
- 现代信息系统的企业驱动力
- 链表所有为key的节点全部删除
- android Activity的启动模式 作用简析+demo详解
- 在Myeclipse中用Java语言操作mysql数据库
- PHP中的字符串替换(str_replace)
- activity 与 Fragment生命周期的理解
- 又见01背包(数据较大,重量和价值互换)
- CSS中四分之一圆的写法
- svn 解决冲突过程
- 日历生成装置和日历生成方法
- 安卓学习笔记之-camera实现图片的3D旋转
- C#: 过程或函数""需要""参数,但未提供该参数
- 成都Uber优步司机奖励政策(3月19日)
- .net应用程序安装部署时异常 Error 1001. 在初始化安装时发生异常 System.BadImageFormatException:未能加载文件或程序集 的解决办法【成功解决】
- 【Linux学习】Vi 操作命令集合
- QML C++ TableView + Model 处理
- 表格中鼠标移入时变色,移出又恢复
- Windows上已经删除的文件并没有消失并且再次删除却提示无法找到该项目的解决办法
- OpenGL ES 2.0 剪裁测试