递归输出char数组的所有排列
来源:互联网 发布:centos安装intellij 编辑:程序博客网 时间:2024/05/19 14:51
递归输出char数组的所有排列
思路还是递归,如abc,所有排列6种(abc,acb,bac,bca,cab,cba),如果固定a,则bc只有两种排列(bc,cb),若又固定b,则只剩c只有一种排列c,这时候排列为abc;也就是对部分字符固定其位置不变,是其他字符进行排列,具体解法见如下个人编码
#include <iostream>using namespace std;/*** 将数组内的数据所有排列打印输出* 思路还是递归*/void printRes(char a[],int ac){ for(int i = 0; i < ac; i++){ cout<<a[i]; } cout<<endl;}void listAll(char a[],int ac ,int n,int m){ if(n == m){ printRes(a,ac); }else{ for(int i = n; i <= m; i++){ swap(a[n],a[i]); listAll(a,ac,n+1,m); swap(a[n],a[i]); } }}int main(){ int a=1,b=2; swap(a,b); cout<<a<<' '<<b<<endl; char c[7] = {'a','b','c','d','e','f','g'}; listAll(c,7,0,6); cout << "Hello world!" << endl; return 0;}
不只是char数组,也改成其他类型的,或者使用c++模板
个人github
0 0
- 递归输出char数组的所有排列
- 【递归】输出一个字符串的所有排列
- 递归,非递归生成数组的所有排列
- 递归的应用,输出字符串的所有排列(java)
- 输出数组所有全排列
- 普通递归算法:输出n个数的所有全排列
- 传入一个数组,输出这个数组里面的所有排列
- 递归实现打印一个数组的所有排列
- 用递归输出一维数组的全排列
- 题目:输入一个字符数组,输出所有的排列。
- java输出一个数组的所有排列形式(全排序)
- 字符串的排列,递归输出
- 递归思想输出数组全排列
- 输出串的所有排列
- 输出字符串的所有排列
- 输出数组的所有元素的排列组合(递归)
- js+用递归输出给定数组的所有组合方式
- 输出字符串的所有全排列(递归法和非递归,非递归采用组合数学的字典序)
- 树---求给定二叉树中两节点的最低公共祖先(LCA)
- 菜鸟好文推荐(二十二)——让老板开心的程序员不是好程序员
- UITableViewCell加载时的简单动画效果
- Mysql的发行版本小结
- 最佳缝合线算法(图像融合)
- 递归输出char数组的所有排列
- jquery validate 插件:(3)校验规则
- C++实现单链表
- WebMVC框架 之 SpringMVC
- J2EE13个规范
- 线程和进程的关系与区别
- vs2015 object reference not set to an object
- 关于百度屏蔽文字的……
- 主存储器的地址编码问题