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相当简单的分页类
Oct 02 PHP
PHP操作XML作为数据库的类
Dec 19 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
ThinkPHP之getField详解
Jun 20 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
Jul 18 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 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
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
php实现图片缩略图的方法
2016/03/29 PHP
django中的ajax组件教程详解
2018/10/18 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
javascript 写类方式之八
2009/07/05 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
Python类的用法实例浅析
2015/05/27 Python
Python自动扫雷实现方法
2015/07/25 Python
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
如何安装ruby on rails
2014/02/09 面试题
男女朋友协议书
2014/04/23 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
组织鉴定材料
2014/06/02 职场文书
小学家长通知书评语
2014/12/31 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
Python turtle实现贪吃蛇游戏
2021/06/18 Python
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python