PHP 实现的字典序排列算法

王朝php·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

感谢 bird 告诉我 $_POST[] 的用法。代码如下:

<?php

if ($_POST["perdata"] == "")

{

$_POST["perdata"] = "1 2 3 4";

}

$data = chop (trim ($_POST["perdata"]));

$a = explode (" ", $data);

sort ($a);

$data = implode (" ", $a);

?>

<?php

function nextpermu (&$c)

{

$s = sizeof ($c);

$i = $s - 1;

while ($i > 0)

{

if ($c[$i] > $c[$i-1])

{

$j = $s-1;

while ($c[$j] <= $c[$i-1])

$j--;

$t = $c[$i-1];

$c[$i-1] = $c[$j];

$c[$j] = $t;

//echo $i."-".$j."<br>";

for ($j=$s-1; $i < $j; $i++, $j--)

{

$t = $c[$i];

$c[$i] = $c[$j];

$c[$j] = $t;

}

return true;

}

$i--;

}

for ($i = 0, $j=$s-1; $i < $j; $i++, $j--)

{

$t = $c[$i];

$c[$i] = $c[$j];

$c[$j] = $t;

}

return false;

}

?>

<html>

<head>

<title>排列-字典法</title>

</head>

<body>

<form action="permutation.php" method="post">

<table>

<tr>

<td><input type="text" name="perdata"></td>

<td><input type="submit" value="排列"></td>

</tr>

</table>

</form>

<p>当前元素:<? echo $data; ?></p>

<table width="60%">

<tr>

<th width="50" bgcolor="yellow">序号</th>

<th bgcolor="EEEEFF">排列</th>

</tr>

<?php

$num = 1;

do

{

?>

<tr>

<td align="center"><? echo $num; ?> </td>

<td><? echo implode (" ", $a); ?></td>

</tr>

<?php

$num++;

}

while (nextpermu ($a));

?>

</table>

</body>

</html>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航