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 相关文章推荐
第二节 对象模型 [2]
Oct 09 PHP
BBS(php &amp; mysql)完整版(三)
Oct 09 PHP
PHP新手上路(二)
Oct 09 PHP
如何提高MYSQL数据库的查询统计速度 select 索引应用
Apr 11 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
php防注入及开发安全详细解析
Aug 09 PHP
ThinkPHP之M方法实例详解
Jun 20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
ThinkPHP分页实例
Oct 15 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
如何打开php的gd2库
Feb 09 PHP
PHP异常处理定义与使用方法分析
Jul 25 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管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
提升Python程序运行效率的6个方法
2015/03/31 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
线程的基本概念、线程的基本状态以及状态之间的关系
2012/10/26 面试题
一些.net面试题
2014/10/06 面试题
庆元旦广播稿
2014/02/10 职场文书
会计工作决心书
2014/03/11 职场文书
高中运动会广播稿
2014/09/16 职场文书
2015年入党决心书
2015/02/05 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技
SpringBoot Http远程调用的方法
2022/08/14 Java/Android