php教程

超轻量级php框架startmvc

PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能

更新时间:2020-03-25 07:59:00 作者:startmvc
本文实例讲述了PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能。分享给大家供大家

本文实例讲述了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 深度优先遍历 输出 1 2 3...n 全排列