PHP7 vs Python的二分查找性能小测试(俺想说Python的性能真是一坨X)

先贴测试结果

[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)

转载于:https://my.oschina.net/cytan/blog/611627

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值