本文实例讲述了PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?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为例,输出如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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程序设计有所帮助。
原文链接:http://blog.csdn.net/jingbing082619/article/details/47082401