博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递归实现全排列(一)
阅读量:7108 次
发布时间:2019-06-28

本文共 635 字,大约阅读时间需要 2 分钟。

【思路】

以下用详细样例来阐述这样的实现的思路,比如实现123的全排列组合。

要求123的全排列,能够分为以下情况:
情况1:第0位为1+23的全排列
情况2:第0位为2+13的全排列
情况3:第0位为3+32的全排列
上面的情况用代码实现例如以下:

//情况1//为了跟以下一致,加上swap(list[0],list[0]);perm(list,1,2);//为了跟以下一致,加上swap(list[0],list[0]);//情况2swap(list[0],list[1]);perm(list,1,2);swap(list[0],list[1]);//情况3swap(list[0],list[2]);perm(list,1,2);swap(list[0],list[2]);

这3种情况能够用循坏取代:

for(int i=0;i<=2;i++){  swap(list[0],list[i]);  perm(list,1,2);  swap(list[0],list[i]);}

【全排列实现代码一】

#include
using namespace std;void perm(char list[],int k,int m);void perm(char list[],int k,int m){ if(k==m) { for(int j=0;j<=m;j++) { cout<

转载地址:http://talhl.baihongyu.com/

你可能感兴趣的文章
Java多线程CyclicBarrier学习
查看>>
厌倦了编程书?来试试这3种提高编程技能的有趣方法吧
查看>>
《教孩子学编程(Python语言版)》——2.4 添加颜色
查看>>
并发工具类(四)两个线程进行数据交换的Exchanger
查看>>
《精通Spring MVC 4》——1.4 命令行方式简介
查看>>
Ceph分布式存储实战1.2 Ceph的功能组件
查看>>
《贝叶斯思维:统计建模的Python学习法》一2.5 封装框架
查看>>
《操作系统真象还原》——0.20 BIOS中断、DOS中断、Linux中断的区别
查看>>
爱的初体验!第二弹!多图! —— GNOME 3.10/Arch Linux
查看>>
《C++覆辙录》——1.12:嘴上无毛,办事不牢
查看>>
《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.4 DM9000A以太网控制器...
查看>>
《TensorFlow技术解析与实战》——3.4 小结
查看>>
《Python高性能编程》——2.11 用dowser实时画出变量的实例
查看>>
《软件测试工程师面试秘籍》—第1章1.2节第一印象
查看>>
演讲实录丨丨Young-Jo Cho 基于网络的机器智能机器人技术的发展
查看>>
独家 | 第十届中国R会议(北京)
查看>>
《JavaScript启示录》——1.13 如何存储或复制复杂值
查看>>
《Python和HDF 5大数据应用》——第1章 简介 1.1 Python和HDF5
查看>>
《重构HTML:改善Web应用的设计(修订版)》——导读
查看>>
分布式缓存技术PK:选择Redis还是Memcached?
查看>>