输入 一个整数N  再输入N个整数

输出 N个数的全排

代码如下:

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 100
 4
 5 int a[2][N] = {0};
 6 int p[N] = {0};
 7
 8 void dfs(int k, int n)
 9 {
10     int i;
11
12     if(k == n)
13     {
14         for(i = 0; i < n - 1; i++)
15             printf("%d ", p[i]);
16
17             printf("%d\n", p[i]);
18     }
19     else
20     {
21         for(i = 0; i < n; i++)
22         {
23             if(a[0][i] == 0)
24             {
25                 p[k] = a[1][i];
26                 a[0][i] = 1;
27
28                 dfs(k+1, n);
29
30                 p[k] = a[0][i] = 0;
31             }
32         }
33     }
34
35     return;
36 }
37
38 int main()
39 {
40     int n, i;
41
42     while(scanf("%d", &n) != EOF)
43     {
44         memset(a, 0, sizeof(a));
45         memset(p, 0, sizeof(p));
46         for(i = 0; i < n; i ++)
47             scanf("%d", &a[1][i]);
48
49         dfs(0, n);
50     }
51
52     return 0;
53 }

转载于:https://www.cnblogs.com/yishilin/p/4241110.html

N个数的全排列 -------指定排头法相关推荐

  1. 对n个数进行全排列并打印全排列结果

    全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个.现以{1, 2, 3, 4, 5}为 简单分析: 1.首先看最后两个数4, 5. 它们的全排列为4 5和5 4, 即以4开头 ...

  2. 用回溯法找出n个自然数中取r个数的全排列

    回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验.在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯. 本实例是用回溯法输出n个自然数中以 ...

  3. c语言实现全排列并存储,C语言实现全排列和回溯法总结

    一.递归实现全排列 #include"cstdio" int A[]; void print_permutation(int n,int *A,int cur){ if(cur== ...

  4. python全排列字典序输出 递归_递归实现全排列,字典序法实现全排列

    问题:全排列的递归实现 编程思想: 用1 2 3为例,全排列结果为123,132,213,231,321,312  根据全排列的找到规律 1.将当前元素与后面位置的每个元素依此交换 2.交换后取后一个 ...

  5. 全排列邻位对换法c语言算法,全排列——邻位对换法

    一个能够快速生成全排列的算法叫做邻位对换法,它之所以较快,是因为邻位对换法中下一个排列总是上一个排列某相邻两位对换得到的,只需一步,就可以得到一个新的全排列,而且绝不重复,但是由于每将n从一端移动到另 ...

  6. 全排列邻位对换法c语言算法,全排列及相关扩展算法(六)——全排列最蛋疼的算法:邻位对换法...

    1.引入原因:在此之前我们实现全排列本质上都是采用单向交换的思路,当交换到末端便要回溯至上一层面,如果我们采用双向的交换,便可以不断地交换下去,于是产生了邻位对换法.邻位对换法在找下一个排列的方法上在 ...

  7. 全排列邻位对换法c语言算法,全排列——邻位对换法.docx

    全排列-- 位 法 (算法)全排列-- 位 法 一个能 快速生成全排列的算法叫做 位 法,它之所以 快,是因 位 法中下一个排列 是上一个排列某相 两位 得到的, 只需一步, 就可以得到一个新的全排列 ...

  8. 46. 全排列015(回溯法求解)

    一:题目 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2:输入:nums = [0, ...

  9. c# 从一组数中随机抽取一定个数_C#产生指定范围随机数的几种方法-亮术网

    在开发过程中,常常要产生随机数,如生成静态 html 网页时,文件名通常用产生随机数的方式获得,生成定单的时候,定单号也可以用产生随机数的方式获得等. 在 C# 中,一般都用 Random 产生随机数 ...

最新文章

  1. python计算概率密度最大的值_Python机器学习(六十四)SciPy 统计
  2. 裁剪Linux小系统
  3. hdu 2544最短路 Floyd算法
  4. c++一个问题:while(!cin) 的解释
  5. qt 16进制字符串和十六进制数_Python字符串类型及其操作
  6. idea 构建spring_以Spring方式构建企业Java应用程序
  7. ubuntu cpp与mysql连接_linux(ubuntu)下C++访问mysql数据库
  8. Theano 中文文档 0.9 - 7.2.4 条件
  9. matlab 符号表,MATLAB——matlab特殊符号表【转载】
  10. 空号检测、号码状态查询接口免费测试、精准实时版(支持携号转网查询)
  11. 字符串与整型的相互转换
  12. 大数据可视化(一)数据可视化概述
  13. 阴阳师服务器维护2月20,阴阳师2月20日官方更新公告 阴阳师2月20日更新内容汇总...
  14. css多媒体竖屏,css3 媒体查询方向:横屏竖屏教程
  15. 070-JAVA项目实训:仿QQ即时通讯软件系列讲座五(讲解用户注册功能)
  16. 汽车销售管理系统数据库的设计与实现
  17. 九、JavaSE-Set接口
  18. 智慧医院数据可视化(数据大屏)
  19. 有关3DES、DUKPT和MK/SK学习记录
  20. openmvg2.0编译与使用

热门文章

  1. 公司网络推广教你网站初期SEO优化该如何做?
  2. 如何做好网络推广“放大招”,教你如何更快速的给新上线网站关键词排名?...
  3. 网站优化两大方面谁都不能忽视!
  4. 外贸企业网站建设难免遇到难题
  5. 网站SEO优化之如何提升网站的流量?
  6. 浅析网站SEO优化中导航优化的四大技巧!
  7. android加载时二级联动点击二级联动,Android实现联动下拉框二级地市联动下拉框功能...
  8. 全字库说文解字字体_整理了10款免费商用中文字体,超好用
  9. matlab 三维饼图,重新学习MATLAB——作图技法及3D可视化
  10. cordova在IOS初次运行,loading加载很久的解决办法