当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-19 10:06:31 浏览: 评论:0 

这篇文章主要介绍了PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能,涉及php数据结构中图的遍历及全排列相关数学运算技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能,分享给大家供大家参考,具体如下:

  1. <?php 
  2. $n=$_REQUEST["n"]; 
  3. if($n>8) 
  4.   echo "{$n}太大了,影响服务器性能"
  5.   return
  6. define("N",$n); 
  7. $d=array(); 
  8. $v=array(); 
  9. for($i=0;$i<=N;$i++){ 
  10.   $d[$i]=$v[$i]=0; 
  11. function dfs($depth){ 
  12.   global $d,$v
  13.   if($depth>=N){ 
  14.     for($i=0;$i!=N;$i++){ 
  15.       echo $d[$i]; 
  16.     } 
  17.     echo "<br>"
  18.     return
  19.   } 
  20.   for($i=1;$i<=N;$i++){ 
  21.     if($v[$i]==0){ 
  22.       $v[$i]=1; 
  23.       $d[$depth]=$i
  24.       dfs($depth+1); 
  25.       $v[$i]=0; 
  26.     } 
  27.   } 
  28. dfs(0); 

这里以get方法传入参数n=4为例,输出如下:

  1. 1234 
  2. 1243 
  3. 1324 
  4. 1342 
  5. 1423 
  6. 1432 
  7. 2134 
  8. 2143 
  9. 2314 
  10. 2341 
  11. 2413 
  12. 2431 
  13. 3124 
  14. 3142 
  15. 3214 
  16. 3241 
  17. 3412 
  18. 3421 
  19. 4123 
  20. 4132 
  21. 4213 
  22. 4231 
  23. 4312 
  24. 4321

Tags: PHP遍历输出1 2 3

分享到: