评价一个计算机算法的效率时用到的方法我们称之为Big O(Order of [大约是])。
有序二分查找算法:
比如我们通过二分查找算法查找容器里的10个数据。
那么,我们需要查找一个数据时正常应该是4步就可以找到。
从下面的图可以看出:
这个计算是怎么得来的?
通过不断的将范围对分直至小到不可再分为止。然后查数,总共分了多少次。
以此类推见如下图:
现在我们可以反向去思考一下。比如说在4步内查找的最大范围是多少?
那么计算方式是通过2的幂次方来算出:
但是我们最初知道的是数据的多少而需要得知进行的步数。
那么我们需要用到幂函数的反函数对数。
要记住我们关注的不在于计算对数。理解一个数与其对数之间的关系即可。
评价一个计算机算法的效率用到的方法我们称之为Big O(order of)。
T为时间;
K为一个常量,包含编译生成代码的效率等等;
N为数据范围(数量)。
运行时间:
随机推荐
-
macOS 升级到了10.12.1
除了明面上的一些更新,但我感觉最重要的是触摸板的行为特征又还原了.
-
Spring AOP基本概念
Spring AOP基本概念 目录 Spring AOP定义 AOP基本术语 通知类型 AOP定义 AOP基本术语 切面( Aspect ):一个能横切多个对象的模块化的关注点.对Spring AOP ...
-
FireFox火狐浏览器与IE兼容问题 - 透明滤镜 DIV滚动条
问题一:最简单的鼠标移过手变型的css要改了 cursor:pointer;/*FireFox(火狐)不支持cursor:hand*/ dw8下面自动出来的也没有hand这个属性了,标准的是point ...
-
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated
As indicated by the warning, to turn off the nonstandard behaviors, enable the new explicit_defaults ...
-
c++ 基础学习: 左值 概念cocos2d-x3.0的实际应用
左值:概念baidu 1.2.6.2 与Cocos2d-x内存管理的结合 在2.x的使用场景中,CCArray和CCDictionary通常被分配在堆上,我们不得不需要考虑在适当的地方释放其内存.新的 ...
-
grep、egrep、fgrep的用法与特性详解
[转载自]http://tanxw.blog.51cto.com/4309543/1361993 开篇 学习Linux也有一段时间了,对Linux多少也算是有点了解了,越是了解也就越对这 ...
-
DRF 商城项目 - 用户( 登录, 注册,登出,个人中心 ) 逻辑梳理
用户登录 自定义用户登录字段处理 用户的登录时通过 手机号也可以进行登录 需要重写登录验证逻辑 from django.contrib.auth.backends import ModelBacken ...
-
【Java并发编程】13、forkjoin
http://www.infoq.com/cn/articles/fork-join-introduction http://www.importnew.com/14506.html Java7中的F ...
-
WebPack 学习:从阮神的15个DEMO开始
WebPack 是什么 官方就一句话,打包所有的资源. 从阮神的 15 DEOM入手 Webpack Github 地址 阮神GIT 按照 ReadME 操作 npm webpack-dev-serv ...
-
python selenium爬取QQ空间方法
from selenium import webdriver import time # 打开浏览器 dr = webdriver.Chrome() # 打开某个网址 dr.get('https:// ...