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详细彻底学习Smarty
Mar 27 PHP
从手册去理解分析PHP session机制
Jul 17 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
Python中使用django form表单验证的方法
Jan 16 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
Laravel推荐使用的十个辅助函数
May 10 PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 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 采集程序 常用函数
2008/12/18 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
Python实现抢购IPhone手机
2018/02/07 Python
python通过zabbix api获取主机
2018/09/17 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
django2笔记之路由path语法的实现
2019/07/17 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
体育口号大全
2014/06/18 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
为自己工作观后感
2015/06/11 职场文书
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技