PHP7 vs Python的二分查找性能小测试(俺想说Python的性能真是一坨X)
PHP7 vs Python的二分查找性能小测试(俺想说Python的性能真是一坨X)
DavinciRes 发表于2年前
PHP7 vs Python的二分查找性能小测试(俺想说Python的性能真是一坨X)
  • 发表于 2年前
  • 阅读 292
  • 收藏 7
  • 点赞 1
  • 评论 2

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: PHP PHP7 Python 性能 对比

先贴测试结果

[root@fbsd /tmp]# time php ./search_value.php 
real    0m1.869s
user    0m1.770s
sys    0m0.095s
[root@fbsd /tmp]# time python ./search_value.py

real    0m10.096s
user    0m9.578s
sys    0m0.158s

上述Python是python2,如果用python3执行,花的时间更多,只能呵呵了。

PHP7(版本为7.0.2)的代码

#!/usr/bin/env php
<?php
function binsearch($data , $key)
{
    $low = 0;
    $high = count($data);
    $found = -1;
    while($low < $high) {
        $mid = ($low + $high) / 2;
        if($key == $data[$mid]) {
            $found = $mid;
            break;
        }  else 
            if($key < $data[$mid]) 
                $high = $mid;
            else
                $low = $mid + 1;
    }
    return $found;
}

$mydata = array();
$max_value = 1000000;
for($i=0;$i< $max_value;$i++){
    $mydata[$i] = $i;
}

foreach($mydata as $i) {
    binsearch($mydata, $i);
}
?>

Python版(版本为2.7.10)的代码

def binsearch(data,key):
    low = 0
    high = len(data)
    i = 0
    found = -1
    while low < high:
        mid = (low+high) / 2
        if key == data[int(mid)]:
            found = int(mid)
            break
        else:
            if key < data[int(mid)]:
                high = mid
            else:
                low = mid + 1
    return found

a = []
max_value=1000000
for n in range(0,max_value):
    a.append(n)

n = 0
for n in a:
    binsearch(a,n)
共有 人打赏支持
粉丝 6
博文 11
码字总数 7030
评论 (2)
不坏
没有什么意义
zouqilin
python不是这么用的10
×
DavinciRes
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: