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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
php中的MVC模式运用技巧
May 03 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
php获取url参数方法总结
Nov 13 PHP
php显示时间常用方法小结
Jun 05 PHP
php中动态变量用法实例
Jun 10 PHP
深入解析WordPress中加载模板的get_template_part函数
Jan 11 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
php注册登录系统简化版
Dec 28 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
PHP中的替代语法简介
2014/08/22 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
Smarty模板配置实例简析
2019/07/20 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
python数据结构之二叉树的建立实例
2014/04/29 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
python django生成迁移文件的实例
2019/08/31 Python
python操作cfg配置文件方式
2019/12/22 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
怎样写好创业计划书的内容
2014/02/06 职场文书
保密工作实施方案
2014/02/24 职场文书
小学毕业寄语大全
2014/04/03 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL
python内置模块之上下文管理contextlib
2022/06/14 Python