php循环优化,php FOR 循环优化有关问题

PHP code[User:root Time:21:21:46 Path:/home/liangdong/php]$ php permutation.php

Total time used : 9738642ms

[User:root Time:21:21:56 Path:/home/liangdong/php]$ cat permutation.php

$beg_time = microtime(true);

$beg_time *= 1000 * 1000;

$table = range(1, 33);

$temp = array();

$fp = null;

function _get_permutations($index, $num) {

global $temp;

global $total;

global $table;

global $fp;

if ($num == $total) {

global $perms;

fwrite($fp, json_encode($temp) . PHP_EOL);

return;

}

for ($ndx = $index; 33 - $ndx + $num >= $total; ++ $ndx) {

$temp[$num] = $table[$ndx];

_get_permutations($ndx + 1, $num + 1);

}

}

function get_permutations($n = 6) {

global $total;

global $perms;

global $fp;

if ($n <= 0 && $n > 33) {

return false;

}

$total = $n;

$fp = fopen("data.txt", "w");

_get_permutations(0, 0);

fclose($fp);

return true;

}

get_permutations();

$end_time = microtime(true);

$end_time *= 1000 * 1000;

echo "Total time used : " . ($end_time - $beg_time) . "ms" . PHP_EOL;

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值