PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能


Posted in PHP onNovember 10, 2017

本文实例讲述了PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能。分享给大家供大家参考,具体如下:

<?php
$n=$_REQUEST["n"];
if($n>8)
{
  echo "{$n}太大了,影响服务器性能";
  return;
}
define("N",$n);
$d=array();
$v=array();
for($i=0;$i<=N;$i++){
  $d[$i]=$v[$i]=0;
}
function dfs($depth){
  global $d,$v;
  if($depth>=N){
    for($i=0;$i!=N;$i++){
      echo $d[$i];
    }
    echo "<br>";
    return;
  }
  for($i=1;$i<=N;$i++){
    if($v[$i]==0){
      $v[$i]=1;
      $d[$depth]=$i;
      dfs($depth+1);
      $v[$i]=0;
    }
  }
}
dfs(0);

这里以get方法传入参数n=4为例,输出如下:

1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
WML,Apache,和 PHP 的介绍
Oct 09 PHP
发布一个用PHP fsockopen写的HTTP下载的类
Feb 22 PHP
在PHP中养成7个面向对象的好习惯
Jul 17 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
使用PHP如何实现高效安全的ftp服务器(一)
Dec 20 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 PHP
PHP扩展类型及安装方式解析
Apr 27 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 #PHP
PHP简单实现循环链表功能示例
Nov 10 #PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 #PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 #PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 #PHP
PHP基于回溯算法解决n皇后问题的方法示例
Nov 07 #PHP
php实现的三个常用加密解密功能函数示例
Nov 06 #PHP
You might like
PHP函数utf8转gb2312编码
2006/12/21 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
jscript之List Excel Color Values
2007/06/13 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
webpack4.x打包过程详解
2018/07/18 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
python cs架构实现简单文件传输
2020/03/20 Python
django orm 通过related_name反向查询的方法
2018/12/15 Python
python pygame实现方向键控制小球
2019/05/17 Python
python解析yaml文件过程详解
2019/08/30 Python
Python自动创建Excel并获取内容
2020/09/16 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
如何手工释放资源
2013/12/15 面试题
介绍一下XMLHttpRequest对象
2012/02/12 面试题
工厂保安员岗位职责
2014/01/31 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技