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核心代码分析require和include的区别
Jan 02 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
php function用法如何递归及return和echo区别
Mar 07 PHP
php学习笔记之面向对象
Nov 08 PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
PHP implode()函数用法讲解
Mar 08 PHP
php利用array_search与array_column实现二维数组查找
Jul 08 PHP
php依赖注入知识点详解
Sep 23 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 #PHP
PHP用函数嵌入网站访问量计数器
Oct 27 #PHP
PHP实现网站访问量计数器
Oct 27 #PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 #PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 #PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 #PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 #PHP
You might like
一篇入门的php Class 文章
2007/04/04 PHP
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
javascript web对话框与弹出窗口
2009/02/22 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python 元类使用说明
2009/12/18 Python
python实现BackPropagation算法
2017/12/14 Python
Python对切片命名的实现方法
2018/10/16 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
python实现最大优先队列
2019/08/29 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
保送生自荐信范文
2013/10/06 职场文书
求职信范文怎么写
2014/01/29 职场文书
工会换届选举方案
2014/05/21 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
本科应届生自荐信
2014/06/29 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
Go 中的空白标识符下划线
2022/03/25 Golang
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL