顺序查找算法【工作见解】

星辰工作中遇到要查找数组数据取出

工作场景:有两个数组一个是 [["时间","今天时间数据"],["时间","今天时间数据"],...]

另一个是 [["时间","昨天时间数据"],["时间","昨天时间数据"],["时间","昨天时间数据"],..]

这两个要组成 时间相差 60*60*24秒的数据 组成一个元素。

顺序查找算法【工作见解】

顺序查找算法【工作见解】
            $startTime = microtime(true);
            foreach ($list as $k1=>$v1){//时间复杂度O(n^2)
                //获取下面时间轴
                $categories[]   = $v1->createTime;//当前时间
                $sum[]          = $v1->sum;
                $isListYesterday = 0;//没有被更变
                foreach ($listYesterday as $k2=>$v2){//搜索这个数组
//                    dump($v2->createTime);
//                    dump($v1->createTime);exit();
                    if (strtotime($v2->createTime)+60*60*24 == strtotime($v1->createTime)){//时间相差一整天的 存入数组里面
//                        dump($v2->createTime);
//                        dump($v1->createTime);
                        $sumYesterday[] = $v2->sum;
                        $isListYesterday = 1;
                        break;
                    }
                }
                if ($isListYesterday == 0){//没有搜索到就赋值一个
                    $sumYesterday[] = 0;
                }
            }
            $endTime = microtime(true);
            $execTime = bcsub($endTime,$startTime,8);//秒

这个顺序查找算法,其实就是暴力解法。在一组没有顺序的数组里面。进行一个一个遍历查找。当然如果查找到,就不需要遍历了 break返回出去。

然后判断一下如果没有查找到。赋值一个 0 作为默认的缺省值。、

转载请标注来源博客:www.z88j.com

原创文章,作者:星辰,如若转载,请注明出处:https://www.z88j.com/111.html

(9)
打赏 微信扫一扫 微信扫一扫
上一篇 2020年12月10日 下午8:51
下一篇 2021年3月8日 下午4:40

相关推荐

发表回复

登录后才能评论

Warning: error_log(/www/wwwroot/www.z88j.com/wp-content/plugins/spider-analyser/#log/log-1909.txt): failed to open stream: No such file or directory in /www/wwwroot/www.z88j.com/wp-content/plugins/spider-analyser/spider.class.php on line 2900