用递归的方法来实现强大的全排列功能

用递归的方法来实现强大的全排列功能

ID:8851236

大小:25.50 KB

页数:3页

时间:2018-04-09

用递归的方法来实现强大的全排列功能_第1页
用递归的方法来实现强大的全排列功能_第2页
用递归的方法来实现强大的全排列功能_第3页
资源描述:

《用递归的方法来实现强大的全排列功能》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、用递归的方法来实现强大的全排列功能输入一行字符串,然后将字符串中的所有字符进行全排列,然后按照从小到大的顺序输出,每个输出占一行。  输入输出示例:  输入数据:  abc  输出数据:  abc  acb  bac  bca  cab  cba  分析:  使用string来保存字符串,便于拆分和分割。使用vector来保存全排列的结果,便于操作和排序。  用户输入一个字符串str,程序的任务是对str求全排列,也就是求str[0]~str[length-1]的全排列  可以分为先求str的第一个

2、字符str[0],然后求str[1]~str[length-1]的全排列,然后将str[0]分别插入到这些全排列的不同的位置中;  然后求str[1]~str[length-1]的全排列,有可以分成先求str[1],然后求str[2]~str[length-1]的全排列,然后将str[1]插入到不同的位置中;  由此得到递归,  求str[n]~str[length-1]的全排列,分为先求str[n-1]~str[length-1]的全排列,然后将str[n]分别插入到这个全排列的每个结果的所有的位

3、置;  当n=length-1的时候,找到递归的出口。  通过递归获得str的全排列,然后通过stl中的sort函数,进行排序。  程序代码:  #include  #include  #include  usingnamespacestd;  vectorfun(stringstr)  {  vectorv;  if(str.length()==1)//递归的出口  {  v.push_back(str);  returnv;  

4、}  charc=str[0];  stringx=str.substr(1);  vectort=fun(x);  for(inti=0;i

5、th();j++)j="0;j<="for(intn-1个字符的全排列》str;  vectorv;  v=fun(str);  vector::iteratorp;  for(p=v.begin();p
  

  ??

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。