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 has encountered an Access Violation 错误的解决方法
Jan 17 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
解决PHP超大文件下载,断点续传下载的方法详解
Jun 06 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
PHP 7.0.2 正式版发布
Jan 08 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
Oct 12 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 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判断ip黑名单程序代码实例
2014/02/24 PHP
PHP四大安全策略
2014/03/12 PHP
PHP静态文件生成类实例
2014/11/29 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
php输出图像的方法实例分析
2017/02/16 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
OpenCV 模板匹配
2019/07/10 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
新郎新娘婚礼答谢词
2014/01/11 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
应用数学专业求职信
2014/03/14 职场文书
婚庆司仪主持词
2014/03/15 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
2015年司法局工作总结
2015/05/22 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
用JS实现飞机大战小游戏
2021/06/09 Javascript
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis