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 相关文章推荐
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
解析thinkphp的左右值无限分类
Jun 20 PHP
php的一个简单加密解密代码
Jan 14 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
YII2.0之Activeform表单组件用法实例
Jan 09 PHP
PHP数据库操作Helper类完整实例
May 11 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP按一定比例压缩图片的方法
Oct 12 PHP
php判断IP地址是否在多个IP段内
Aug 18 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出错界面
2006/10/09 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
jQuery实现的Div窗口震动效果实例
2015/08/07 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
python opencv实现运动检测
2018/07/10 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
this关键字的含义
2015/04/08 面试题
工程业务员岗位职责
2013/12/31 职场文书
初三班主任寄语大全
2014/04/04 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
事业单位年度考核评语
2014/12/31 职场文书
golang import自定义包方式
2021/04/29 Golang
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
MySQL添加索引特点及优化问题
2022/07/23 MySQL