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 相关文章推荐
利用discuz自带通行证整合dedecms的方法以及文件下载
Mar 06 PHP
10个实用的PHP代码片段
Sep 02 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
PHP 实现判断用户是否手机访问
Jan 21 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
Laravel 模型关联基础教程详解
Sep 17 PHP
PHP中echo与print区别点整理
Mar 09 PHP
php 解析非标准json、非规范json
Apr 01 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实现像JSP,ASP里Application那样的全局变量
2007/01/12 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
浅析PHP 按位与或 (^ 、&amp;)
2013/06/21 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
Python中分数的相关使用教程
2015/03/30 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
毕业生机械建模求职信
2013/10/14 职场文书
高中打架检讨书
2014/02/13 职场文书
《在家里》教后反思
2014/03/01 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL