
算法
安徒生_
这个作者很懒,什么都没留下…
展开
-
从 100 万个数里找出最大的前 100 个
1、根据快速排序划分的思想 ,算法如下: (1) 递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数 (2) 对(b,d]重复(1)操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分 (3) 返回上一个区间,并返回此区间的数字数目。接着方法仍然是对上一区间的左边进行划分,分为[a2,b2)b2(b2,d2]两个区间,取(b2,转载 2017-03-18 13:24:29 · 937 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度
一、时间复杂度 1、常数阶: 执行恒定时间的算法,O(1)。2、线性阶:<?php for ($i=0; $i < n; $i++) { # 到这里执行一次为 O(1); } ?>循环 n 次,O(n)。3、对数阶:<?php $i = 1; while ($i <= n) { //时间复杂度 O(1), //而每次原创 2017-03-14 15:58:41 · 522 阅读 · 0 评论 -
php 比较任意两个版本号的大小
自己写的。function versionCompare($a, $b) { // a,b已存在、非空字符串或者非零 if (empty($a) || empty($b)) return "errmsg:不可为空。"; // 字符串必须为用'.'隔开的数字串 $rule = "/^\d+(\.\d+)*$/"; $aMat = preg_原创 2017-03-15 13:10:47 · 5516 阅读 · 1 评论