#include<iostream>
using namespace std;
void perm(int list[],int k,int m);//声明
void perm(int list[],int k,int m)//调用
{
if(k==m)//相等则输出,总是输出最后一层。
{
for(int j=;j<=m;j++)
{
cout<<list[j];
}
cout<<endl;
}
else
{
for(int i=k;i<=m;i++)
{
swap(list[k],list[i]);//第一层,先和自己换。1和1换,2和2换,3就相等然后输出了。输出后回来,2和3换。
perm(list,k+,m);
swap(list[k],list[i]);//将前面换回的顺序再换回来,防止变顺序。
}
}
} int main()
{
//char a[7]="123456";
int a[]={,,};
perm(a,,);
system("pause");
return ;
}

逻辑顺序:

第一层循环3次:

k=0,i=k=0,list[0]和list[0]交换。然后递归调用k+1=1,2

进入第二层,循环2次:

k=1,i=k=1,list[1]和list[1]交换,然后递归调用k+1=2,2

此时相等,输出结果,0,1,2(相当于没有循环或者循环1次)

然后回到第二层,循环第二层的第2次

k=1,i=k+1=2,list[1]和list[2]交换,然后递归调用k+1=2,2

此时相等,输出0,2,1

然后回到第一层,循环第一层的第2次,后面同次过程。

C++递归方法实现全排列的更多相关文章

  1. 我的offer之路(一)

    目录 1.职业规划. 2.刷题. 3.看书. <剑指offer> <数据结构算法与应用:C++语言描述 > <Effective C++> <C与指针> ...

  2. 全排列 递归方法(permutation原理

    https://blog.csdn.net/axiqia/article/details/50967863  原博客 (一)递归的全排列算法 (A.B.C.D)的全排列为 1.A后面跟(B.C.D)的 ...

  3. 不会全排列算法(Javascript实现),我教你呀!

    今天我很郁闷,在实验室凑合睡了一晚,准备白天大干一场,结果一整天就只做出了一道算法题.看来还是经验不足呀,同志仍需努力呀. 算法题目要求是这样的: Return the number of total ...

  4. 46 Permutations(全排列Medium)

    题目意思:全排列 思路:其实看这题目意思,是不太希望用递归的,不过还是用了递归,非递归的以后再搞吧 ps:vector这玩意不能随便返回,开始递归方法用vector,直接到500ms,换成void,到 ...

  5. Permutations,全排列

    问题描述:给定一个数组,数字中数字不重复,求所有全排列. 算法分析:可以用交换递归法,也可以用插入法. 递归法:例如,123,先把1和1交换,然后递归全排列2和3,然后再把1和1换回来.1和2交换,全 ...

  6. LeetCode第[46]题(Java):Permutations(求所有全排列) 含扩展——第[47]题Permutations 2

    题目:求所有全排列 难度:Medium 题目内容: Given a collection of distinct integers, return all possible permutations. ...

  7. Leetcode题目46.全排列(回溯+深度优先遍历+状态重置-中等)

    题目描述: 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], ...

  8. java实现全排列输出

    java实现全排列输出 转自:http://easonfans.iteye.com/blog/517286 最近在找工作,面试java程序员或者软件工程师,在笔试的时候常常见到这么一道题:全排列 的输 ...

  9. 编程艺术第十六~第二十章:全排列/跳台阶/奇偶调序,及一致性Hash算法

    目录(?)[+]   第十六~第二十章:全排列,跳台阶,奇偶排序,第一个只出现一次等问题 作者:July.2011.10.16.出处:http://blog.csdn.net/v_JULY_v. 引言 ...

随机推荐

  1. Python 使用matplotlib模块模拟掷骰子

    掷骰子 骰子类 # die.py 骰子类模块 from random import randint class Die(): """骰子类""&quo ...

  2. 06006_redis数据存储类型——String

    1.概述 (1)字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等: (2)在Redis中 ...

  3. selenium+java解决富文本输入

    方法一: Actions actions = new Actions(driver); actions.sendKeys(Keys.TAB).perform(); //鼠标通过tab要先移到富文本框中 ...

  4. ZOJ 3229 Shoot the Bullet

    Shoot the Bullet Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on ZJU. Origin ...

  5. Strtus配置Tomcat出现问题2

    启动myeclipse的tomcat6.0有如下提示:The APR based Apache Tomcat Native library which allows optimal performan ...

  6. nodejs-路由(待补充)

    path Router 1 2 3 4 5 var express = require('express'); var Router = express.Router(); Router.get('/ ...

  7. 洛谷—— P1220 关路灯

    https://www.luogu.org/problem/show?pid=1220 题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住 ...

  8. spring4和hibernate4.0.0的整合

    1.在myeclipse以下创建一个javaproject或者webproject,我创建的时webproject,用的myeclipse2013 2.导入spring的依赖包 3.导入hiberna ...

  9. HDU1312 / POJ1979 / ZOJ2165 Red and Black(红与黑) 解题报告

    题目链接:pid=1312" target="_blank">HDU1312 / POJ1979 / ZOJ2165 Red and Black(红与黑) Red ...

  10. HDU 3861--The King’s Problem【scc缩点构图 &amp;&amp; 二分匹配求最小路径覆盖】

    The King's Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...