【面试题】:全排列
来源:互联网 发布:财务自由知乎 编辑:程序博客网 时间:2024/05/17 06:58
前言
全排列问题网上一搜一大堆,我这里也是写的中规中举,没有什么出彩的地方。
这里只是告诉大家,全排列见人见智,首先自己多想想肯定是好的,然后自己试着编码也是挺好的。
全排列有递归和非递归两种解决方案,我这里用的是递归的方法,递归的调用就是一个排列后面的所有数都和这个数进行交换
思路
如上,递归难懂,需要自己多想想
代码
#include <iostream>using namespace std;void swap(char *a,char *b){ char t = *a; *a = *b; *b = t;}void allrange(char *pszstr,int k,int m){ if(k==m){ static int s_i=1; cout<<s_i++<<"个排列"<<pszstr<<endl; } else{ for(int i=k;i<=m;i++){ swap(pszstr+k,pszstr+i); allrange(pszstr,k+1,m); //把数后移 swap(pszstr+k,pszstr+i); } }}int main(){ cout<<" 全排列的递归实现"<<endl; char str[] = "abcdef"; cout<<str<<"的全排列如下"<<endl; allrange(str,0,strlen(str)-1);}
运行截图
通过高中数学的方法这里我们也能知道,全排列的所有计数是 720种,所以是对的
0 0
- 【面试题】全排列
- 【面试题】:全排列
- 面试题28:全排列
- 面试题集锦--海量数据+全排列
- 笔试面试题(9)----字符串全排列
- 面试题28 字符串的全排列
- 面试题28:全排列(java)
- 基于visual Studio2013解决面试题之0602全排列
- 基于visual Studio2013解决面试题之1109全排列
- 面试题:有限制条件的全排列数
- 剑指offer 面试题28 字符串全排列
- 面试题28:求字符的全排列
- 面试题_28——字符串的全排列
- 【面试题之算法部分】字符串的全排列
- 百度面试题 字符串的全排列输出
- 经典面试题之字符串的全排列
- 【面试题】剑指Offer-28-字符串的全排列
- 剑指offer面试题28 字符串的全排列
- 快速排序
- 远程桌面时提示凭证不工作问题的终极解决办法
- 项目过程中遇到的一些问题
- bitsit维护的flyod
- C语言-----循环单链表
- 【面试题】:全排列
- CSS书写规范
- [Python] Layer3攻击
- 【背景减除】-平均法diffBack
- 关于js中的 splice()和slice()实例
- 大小端
- C#SerialPort通信
- 通过免费云端Docker实现在网页中编辑、调试Tensorflow
- liunx下配置基本的java web 运行环境