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 相关文章推荐
js下函数般调用正则的方法附代码
Jun 22 PHP
php正则表达式(regar expression)
Sep 10 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
PHP的加密方式及原理
Jun 14 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
PHP自动生成表单代码分享
Jun 19 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
微信公众号模板消息群发php代码示例
Dec 29 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
实例讲解通过​PHP创建数据库
Jan 20 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过滤危险html代码
2008/08/18 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
php字符串截取的简单方法
2013/07/04 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
javascript 面向对象继承
2009/11/26 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
使用canvas进行图像编辑的实例
2017/08/29 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[01:03:50]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第二场 2月7日
2021/03/11 DOTA
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python自定义时钟类、定时任务类
2021/02/22 Python
python装饰器使用实例详解
2019/12/14 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
深入理解Python 多线程
2020/06/16 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
python中xlrd模块的使用详解
2021/02/01 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
be2台湾单身男女交友:全球网路婚姻介绍的领导品牌
2019/10/11 全球购物
静态变量和实例变量的区别
2015/07/07 面试题
森林防火工作方案
2014/02/14 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python