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中使用与Perl兼容的正则表达式
Nov 26 PHP
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
Jun 29 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
php生成Android客户端扫描可登录的二维码
May 13 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP Include文件实例讲解
Feb 15 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的ob_start();控制您的浏览器cache!
2006/11/25 PHP
PHP 加密解密内部算法
2010/04/22 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
PHP中常用的魔术方法
2017/04/28 PHP
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
值得分享的Bootstrap Table使用教程
2016/11/23 Javascript
ajax异步请求详解
2017/01/06 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
Python读取图片属性信息的实现方法
2016/09/11 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
基于python 取余问题(%)详解
2020/06/03 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
人事经理岗位职责
2014/04/28 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书