一个很显尔易见的算法不同高效率不同的例子

上一篇 / 下一篇  2006-11-16 01:00:02

今天看perl的教程里面有个求质数的例子,后面的练习要求提高例子效率的题,以下是代码:
<?php
//第一个算法
$maxprimes 100
;
$value 0
;
$count 0
;
$f 0
;
while (
$count $maxprimes
) {
    
$value
++;
    
$composite 0
;

    for (
$i=2$i<$value$i
++) {
        for (
$j=$i;$j<$value $j
++) {
            
$f
++;
            if (
$j*$i==$value
) {
                
$composite 1
;
                break;
            }
        }
    }
    if (! 
$composite
) {
        
$count
++;
        print 
"$value is prime<br>"
;
    }
}
print 
$f
;

//第二个算法

$maxprimes 100
;
$value 0
;
$count 0
;
$f 0
;
while (
$count $maxprimes
) {
    
$value
++;
    
$composite 0
;
    if ((
$value 2)==&& $value>2
)
    {
        
$composite 1
;
    }
    else
    {
        for (
$i=2$i<$value$i
++) {
            
$f
++;
            if (
$value%$i==0
) {
                
$composite 1
;
                break;
            }
        }
    }
    if (! 
$composite
) {
        
$count
++;
        print 
"$value is prime<br>"
;
    }
}
print 
$f "<br>"
;

?>

第一个算法是书上的,第二个是优化后的
第一个循环次数23449583,第一个循环次数24110。

TAG: php 效率

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar