Big O
评价一个计算机算法的效率时用到的方法我们称之为Big O(Order of [大约是])。
有序二分查找算法:
比如我们通过二分查找算法查找容器里的10个数据。
那么,我们需要查找一个数据时正常应该是4步就可以找到。
从下面的图可以看出:

这个计算是怎么得来的?
通过不断的将范围对分直至小到不可再分为止。然后查数,总共分了多少次。
以此类推见如下图:

现在我们可以反向去思考一下。比如说在4步内查找的最大范围是多少?
那么计算方式是通过2的幂次方来算出:

但是我们最初知道的是数据的多少而需要得知进行的步数。
那么我们需要用到幂函数的反函数对数。

要记住我们关注的不在于计算对数。理解一个数与其对数之间的关系即可。
评价一个计算机算法的效率用到的方法我们称之为Big O(order of)。

T为时间;
K为一个常量,包含编译生成代码的效率等等;
N为数据范围(数量)。

运行时间:


随机推荐
- 树形结构的数据库表Schema设计-基于左右值编码
树形结构的数据库表Schema设计 程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门.栏目结构.商品分类等等,通常而言,这些树状结构需要借助于数据库完 成持久化.然而目前的 ...
- jmeter 安装tps插件
1.下载 jpgc-graphs-basic-2.0.zip 2.解压并将lib 目录下的 jmeter-plugins-cmn-jmeter-0.4.jar 拷贝到 %JMeter%/lib 目录 ...
- java 重写父类构造器
- BZOJ 1222 产品加工(DP)
某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任 ...
- Oracle 10g DG 环境搭建详解
环境描述:线上招聘库在物理机上,需要上云主机,于是申请两台云主机:由于云主机变态性,分配的云主机具有很多局限性:1.没有/tmp,2.没有 swap 3. /home 目录非常小:于是申请两块云硬盘, ...
- 秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock (续)
java 包实现了读写锁的操作: package com.multithread.readwritelock; import java.util.concurrent.CountDownLatch; ...
- P1039 侦探推理
题目描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明 ...
- 如何使用火狐下的两款接口测试工具RESTClient和HttpRequester发送post请求
Chrome下有著名的Postman,那火狐也有它的左膀右臂,那就是RESTClient和HttpRequester.这两款工具都是火狐的插件,主要用来模拟发送HTTP请求,HTTP请求最常用的两种方 ...
- HDU3507 print article【斜率优化dp】
打印文章 时间限制:9000/3000 MS(Java / Others)内存限制:131072/65536 K(Java / Others) 总共提交:14521已接受提交:4531 问题描述 零有 ...
- Linux(一)——认识Linux
一.Linux介绍 (安装的是Centos6.7) 1.Linux 系统是一套免费使用和自由传播的类 Unix 操作系统(主要用在服务器上),是一个基于 POSIX 和 UNIX 的多用户.多任务.支 ...