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 相关文章推荐
Zend Guard一些常见问题解答
Sep 11 PHP
php中在PDO中使用事务(Transaction)
May 14 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
PHP四大安全策略
Mar 12 PHP
如何让CI框架支持service层
Oct 29 PHP
教你识别简单的免查杀PHP后门
Sep 13 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
PHP rsa加密解密算法原理解析
Dec 09 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 header函数分析详解
2011/08/06 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
python基础之入门必看操作
2017/07/26 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
上海期货面试题
2014/01/31 面试题
资源环境与城市管理专业推荐信
2013/11/30 职场文书
村委会主任先进事迹
2014/01/15 职场文书
给校长的一封检讨书
2014/09/20 职场文书
男方婚礼答谢词
2015/01/20 职场文书
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS