全排列递归算法
来源:互联网 发布:套路网络用语 编辑:程序博客网 时间:2024/05/17 02:38
递归求全排列算法:
例如:char a[]=”abc” ,(i,j,k)表示数组现有的元素
perm(a,k,m);//从数组下标k到m的全排列
k==m 只剩一个元素为递归出口
C++源码:
#include <iostream>using namespace std;/*对数组元素全排列如 a[]="abc";结果为:abcacbbacbcacbacab*/int swap(char a[],int i,int j){//交换数组下标为i和j的元素 char temp; temp=a[i]; a[i]=a[j]; a[j]=temp; return 0;}int perm(char a[],int k,int m){ if(k==m) cout<<a<<endl; else{ for (int i=k;i<=m ;i++) { swap(a,k,i);//每个子串的第二个字符起、都分别与第一个字符交换、形成新的a、进行全排列 perm(a,k+1,m);//除第一个字符外剩下的全排列递归 swap(a,k,i);//恢复还原a[] /* code */ } } return 0;}int main() { char a[]="abc"; char *p=a; int length=0; while(*p!='\0'){ length++; p++; } perm(a,0,length-1);//对数组a[] 从下标0到length-1全排列return 0;}
0 0
- 全排列递归算法
- 全排列递归算法
- 全排列算法-递归
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 递归算法---全排列
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 全排列递归算法
- 认识css样式(第二部分-元素分类)
- 灯谜--一个海纳百川的文字游戏
- Dell Inspiron 15 5000 series 设置u盘启动(新版BIOS)
- Java应用线上问题排查的常用工具和方法
- 【C++研发面试笔记】22. 常用算法-字符串查找算法
- 全排列递归算法
- 排查Java线上服务故障的方法和实例分析
- 算法入门网站介绍——USACO
- 设计模式之单例模式
- cordova通过原生实现自定义功能
- 解析public static void main(String[] args)
- 剑指offer2-重建二叉树
- 面向对象_final关键字引入
- Java新特性:函数式接口