Big O
评价一个计算机算法的效率时用到的方法我们称之为Big O(Order of [大约是])。
有序二分查找算法:
比如我们通过二分查找算法查找容器里的10个数据。
那么,我们需要查找一个数据时正常应该是4步就可以找到。
从下面的图可以看出:
这个计算是怎么得来的?
通过不断的将范围对分直至小到不可再分为止。然后查数,总共分了多少次。
以此类推见如下图:
现在我们可以反向去思考一下。比如说在4步内查找的最大范围是多少?
那么计算方式是通过2的幂次方来算出:
但是我们最初知道的是数据的多少而需要得知进行的步数。
那么我们需要用到幂函数的反函数对数。
要记住我们关注的不在于计算对数。理解一个数与其对数之间的关系即可。
评价一个计算机算法的效率用到的方法我们称之为Big O(order of)。
T为时间;
K为一个常量,包含编译生成代码的效率等等;
N为数据范围(数量)。
运行时间:
随机推荐
- 在python3中使用urllib.request编写简单的网络爬虫
转自:http://www.cnblogs.com/ArsenalfanInECNU/p/4780883.html Python官方提供了用于编写网络爬虫的包 urllib.request, 我们主要 ...
- 第149天:javascript中this的指向详解
js中的this指向十分重要,了解js中this指向是每一个学习js的人必学的知识点,今天没事,正好总结了js中this的常见用法,喜欢的可以看看: 1.全局作用域或者普通函数中this指向全局对象w ...
- jQuery高度及位置操作
1. 获取滑轮位置,scrolltop:上下滚动的意思. <!DOCTYPE html> <html lang="en"> <head> < ...
- hihoCoder #1639 图书馆
题目大意 给定 $n$($1\le n\le 1000$)个正整数 $a_1, a_2, \dots, a_n$($a_i \le 10^{12}$),令 $s$ 为这 $n$ 个数之和.求 $$ \ ...
- 贪心(qwq)习题题解
贪心(qwq)习题题解 SCOI 题解 [ SCOI2016 美味 ] 假设已经确定了前i位,那么答案ans一定属于一个区间. 从高位往低位贪心,每次区间查找是否存在使此位答案为1的值. 比如6位数确 ...
- elasticsearch 第四篇(API约定)
对多个indices进行操作 es中大多resetapi支持请求多个index, 例如”test1,test2,test3”,index也可以使用通配符, 例如”test*“, 还可以使用+,-来包含 ...
- redis的自带VM(虚拟内存)
Redis支持采用VM技术,以达到当数据超过设置的可使用的物理内存的时候能够正常运行.当数据超过物理内存的时候,把一部分数据写入磁盘中的一块空间来代替物理内存. vm-enabled no ...
- 监听input内容改变的oninput与onpropertychange在ie9的bug
在做autocomplate的时候发现,ie9中,剪切.退格.删除不触发oninput事件,而ie9和ie9+已经移除了onpropertychange事件. 只好尝试添加退格.delete.剪切事件 ...
- bzoj1912【Apio2010】patrol 巡逻
题解: 显然需要分类讨论了,首先理解k==0即原图时按照dfs序来说 , 每条边至少走两次: k==1,相当于可以省去dfs回溯时第二次走过某条路径的浪费,所以答案是k==0的答案-直径 : k==2 ...
- 【bzoj3173】最长上升子序列
Portal --> bzoj3173 Solution 感觉自己需要智力康复qwq 首先题目给的这个序列肯定是一个\(1-n\)的排列,并且插入的顺序是从小到大 仔细思考一下会发现如果知道了最 ...