算法图解之大O表示法
什么是大O表示法
大O表示法可以告诉我们算法的快慢。
大O比较的是操作数,它指出了算法运行时间的增速。
O(n) 括号里的是操作数。
举例
画一个16个格子的网格,下面分别列举几种不同的画法,并用大O表示法表示
1. 一次画一个格子。O(n)

2. 折叠纸张,折叠四次就能出现16个格子。O(log n)

大O表示法所表示的是一个算法在最糟糕情况下的运行时间。
一些常见的大O运行时间
O(log n),也叫对数时间,二分查找。
O(n),也叫线性时间,简单查找。
O(n * log n),快速排序——一种速度较快的排序算法。
O(n²),选择排序——一种速度较慢的排序算法。
O(n!),旅行商问题的解决方案——一种非常慢的算法。

主要启示
算法的速度指的是操作数的增速,而非时间。
谈论算法速度说的是随着输入的增加,其运行时间将以什么样的速度增加。
用大O表示法表示算法的运行时间。
随着元素的增加,快算法比慢算法增加的速度是指数级的。比如,O(log n)和O(n)
旅行商问题
旅行商问题用大O表示法就是O(n!),没错,就是有这么慢的算法。这个问题是说的一个销售员,要去5个城市,他想规划一下最短距离,然后选出最短的距离。5个城市一共有120种规划方案(5!)。n个城市就有n!种规划方案。旅行商问题在计算机科学领域是无解的。
算法图解之大O表示法的更多相关文章
- 算法的时间复杂度——"大O分析法"(转载)
原文地址:https://my.oschina.net/gooke/blog/684026 一下为本人笔记:) 场景:在解决计算机科学领域的问题时,经常有好多个方法都可以,想找到最优的方法,就有了时间 ...
- 算法的时间复杂度(大O表示法)
定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”. 当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性 ...
- 重拾算法之复杂度分析(大O表示法)
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- 算法图解学习笔记01:二分查找&大O表示法
二分查找 二分查找又称折半查找,其输入的必须是有序的元素列表.二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止:如果x<a[ ...
- python数据结构与算法学习自修第二天【时间复杂度与大O表示法】
#!/usr/bin/env python #! _*_ coding:UTF-8 _*_ from Queue import Queue import time que = Queue() time ...
- 【算法】二分查找法&大O表示法
二分查找 基本概念 二分查找是一种算法,其输入是一个有序的元素列表.如果要查找的元素包含在列表中,二分查找返回其位置:否则返回null. 使用二分查找时,每次都排除一半的数字 对于包含n个元素的列表, ...
- 算法时间复杂度、空间复杂度(大O表示法)
什么是算法? 计算机是人的大脑的延伸,它的存在主要是为了帮助我们解决问题. 而算法在计算机领域中就是为了解决问题而指定的一系列简单的指令集合.不同的算法需要不同的资源,例如:执行时间或消耗内存. 如果 ...
- 白话算法:时间复杂度和大O表示法
转自:https://www.jianshu.com/p/59d09b9cee58 每一个优秀的开发者脑中都有时间概念.他们想给用户更多的时间让用户做他们想做的事情.他们通过最小化时间复杂度来实现这一 ...
- 算法复杂度表示(大O表示法)
- 概念: 大O表示法:称一个函数g(n)是O(f(n)),当且仅当存在常数c>0和n0>=1,对一切n>n0均有|g(n)|<=c|f(n)|成立,也称函数g(n)以 ...
随机推荐
- SVN的搭建(权限配置篇)
如要转载,请注明出处! 两个问题: 如何维护多个目录或者仓库 目录权限如何设置 ============================================================ ...
- HTML常用标签参考学习
1.跑马灯标签 功能<marquee>...</marquee> 普通卷动<marquee behavior=slide>...</marquee> 滑 ...
- (转)JSP HTML JAVASCRIPT 中文乱码 解决方案 大全
JSP HTML JAVASCRIPT 中文乱码 解决方案 大全 JSP的中文字符一直是各位初学者首先要解决的问题,下面进行了总结,也给出了解决办法.C4.1 HTML中文编码转换 在JSP文件中的静 ...
- Oracle同义词。。。
同义词 --私有同义词--私有同义词权限grant create synonym to scott;--创建私有同义词create synonym dp for scott.dept;--将查询dep ...
- 介绍一个很好用的Rsa加解密的.Net库 Kalix.ApiCrypto
Rsa非对称加密技术 这个就不说了,大家上网搜索都知道,公钥加密,私钥解密.当然大家也可以自己实现.这里就懒了,就去找一个现成的库,Nuget上搜索,GitHub上搜索,发现.Net的加解密库,下载量 ...
- angularjs嵌套路由
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- theano 模块 MLP示例
theano 模块 MLP示例,有需要的朋友可以参考下. theano教程Example: MLP: 约定数组为列向量, 层级:将多层传感器定义为一连串的层级,每个层级定义为一个类.类属性包括:权重. ...
- Linux环境下使用xampp配置php开发环境
XAMPP (Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.这个软件包原来的名字是LAMPP,但是为 了避免误 解,最新的几个版本就改名为 XAMPP 了.它可以在Win ...
- 解决Jquery中使用each循环时,循环外的js依旧会执行
今天在改项目bug时,发现一个问题,我获取一个div中所有的input,并取值时,判断某一条件,但是循环外的js依然可以执行. $(".tab-reg-next input").e ...
- Java实现随机出题,10道10以内加减法计算
package com.swift; import java.awt.Toolkit; import java.util.Scanner; public class PlusQuiz { public ...