文档章节

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

DavinciRes
 DavinciRes
发布于 2016/01/30 01:09
字数 227
阅读 323
收藏 7

先贴测试结果

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

© 著作权归作者所有

共有 人打赏支持
DavinciRes
粉丝 6
博文 11
码字总数 7030
作品 0
朝阳
系统管理员
私信 提问
加载中

评论(2)

zouqilin
zouqilin
python不是这么用的10
不坏
不坏
没有什么意义
python 二分插入、遍历目录

这两道题是之前面试测试开发遇到的,今天分享给大家。 遍历文件 python 遍历文件夹下所有文件,并打印出所有文件名 二分法 python 在顺序列表中,二分法查找且插入一个数

lvyz0207
05/24
0
0
69. Sqrt(x) - LeetCode

Question 69. Sqrt(x) Solution 题目大意: 求一个数的平方根 思路: 二分查找 Python实现:

yysue
10/01
0
0
Python vs PHP 冒泡排序和累加求和计算性能测试

测试环境: 处理器i5-3230M,64位Ubuntu 14.04 Python 2.7.6, PHP 5.4.39, PHP 7.0.0-dev(2015/04/21) 测试内容: 冒泡排序:对10个升序的数进行排序,降序输出,循环1百万次. 累加求和:0+1+2+3+.....

eechen
2015/04/25
0
18
Sklearn中二分类问题的交叉熵计算

二分类问题的交叉熵   在二分类问题中,损失函数(loss function)为交叉熵(cross entropy)损失函数。对于样本点(x,y)来说,y是真实的标签,在二分类问题中,其取值只可能为集合{0, 1}....

jclian91
07/26
0
0
python cookbook 搜索和排序

1.当需要排序的时候,尽量设法使用内建 Python 列表的 sort 方法; 2.当需要搜索的时候,尽量设法使用内建的字典。 3.python list.sort()方法:相比于手工构建一个辅助的元组列表,使用 sort 方法...

索隆
2012/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 源代码和 C 源代码的运行区别

与其他程序的执行方式和编译方式不同。 Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性。 请参考下图。 https://www.cwiki.us/pages...

honeymose
57分钟前
3
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
5
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部