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编实现程动态图像的创建代码
Sep 28 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
php学习之简单计算器实现代码
Jun 09 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 PHP
ThinkPHP模板中数组循环实例
Oct 30 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
PHP中实现获取IP和地理位置类分享
Feb 10 PHP
PHP文件操作方法汇总
Jul 01 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 PHP
PHP8.0新功能之Match表达式的使用
Jul 19 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遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
解析php类的注册与自动加载
2013/07/05 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
python正则实现计算器功能
2017/12/14 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
求职者简历中的自我评价
2013/10/20 职场文书
推荐信格式要求
2014/05/09 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS