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桌面中心(二) 数据库写入
Mar 11 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
使用PHP 5.0创建图形的巧妙方法
Oct 12 PHP
PHP SEO优化之URL优化方法
Apr 21 PHP
thinkphp验证码显示不出来的解决方法
Mar 29 PHP
php 魔术方法详解
Nov 11 PHP
PHP中set error handler函数用法小结
Nov 11 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
PHP数组函数知识汇总
May 12 PHP
php cookie 详解使用实例
Nov 03 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
Jun 06 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
python读取word文档的方法
2015/05/09 Python
Python matplotlib绘图可视化知识点整理(小结)
2018/03/16 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python实现飞机大战游戏
2020/10/26 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
普天C++笔试题
2016/03/20 面试题
公司开业庆典主持词
2014/03/21 职场文书
出生证明公证书
2014/04/09 职场文书
幼师求职自荐信
2014/05/31 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android