两个大数组foreach,找出相同的key数量,所用的时间对比
2014-02-13 15:52
246 查看
<?php function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } for($i = 1;$i <= 10000;$i++) { $data_1[$i] = 1; } for($i = 1001;$i <= 600000;$i++) { $data_2[$i] = 1; } $time_start = microtime_float(); $num = 0; foreach ($data_1 as $key => $value) { if ($data_2[$key]) { $num++; } } echo $num; $time_end = microtime_float(); $delta_time = $time_end - $time_start; echo '程序总用时:'.round($delta_time, 3).'秒。'; $time_start = microtime_float(); $num = 0; foreach ($data_2 as $key => $value) { if ($data_1[$key]) { $num++; } } echo $num; $time_end = microtime_float(); $delta_time = $time_end - $time_start; echo '程序总用时:'.round($delta_time, 3).'秒。'; ?>
结果:9000程序总用时:0.003秒。9000程序总用时:0.595秒。
foreach放小的数组,速度比较快。
相关文章推荐
- 两个大数组foreach,找出相同的key数量,所用的时间对比
- 有个数组a[100]存放了100个数,这100个数取自1-99,且只有两个相同的数,剩下的98个数不同,写一个搜索算法找出相同的那个数的值.(注意空间效率时间效率尽可能要低)
- 数组去重之两个数组找出相同的组成新数组
- JAVA两个数组间元素的比较(找出相同或者不同元素)
- 对比两个数组内容是否相同
- 【一个小实验】找出两个数组中相同的元素
- 《Java面试试题》找出连续数组中相同的两个数值
- 找出两个有序数组中相同的元素
- 找出两个数组中相同的元素
- js找出两个数组中的相同元素
- c#两个数组对比取出相同的元素输出
- 一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
- 笔试算法题(28):删除乱序链表中的重复项 & 找出已经排好序的两个数组中的相同项
- LeetCode Median of Two Sorted Arrays 在两个已排列的数组中找出中位数。时间复杂度为O(log(min(N,M))
- 两个已排序数组,找出相同的部分
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。 请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n), 空间复杂度是O(1)
- php将两个不同长度数组相同的key合并到一个数组,不同的key也合并进去
- 查找算法之查找一个数组中两两数字相同,只有其中两个数字是不一样的,将其找出
- php将两个数组相同的key合并到一个数组
- 找出两个字符串数组中的相同元素