博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法图解之大O表示法
阅读量:7007 次
发布时间:2019-06-27

本文共 623 字,大约阅读时间需要 2 分钟。

什么是大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!种规划方案。旅行商问题在计算机科学领域是无解的。

 

 

 

转载于:https://www.cnblogs.com/lshedward/p/10428455.html

你可能感兴趣的文章
ios开发入门-我的第一个ios程序 helloword
查看>>
java 7 collection 详解(二)
查看>>
python中xml与json、dict、string的相互转换-xmltodict
查看>>
Windows7操作系统要求电脑配置
查看>>
bash 批处理命令
查看>>
我的友情链接
查看>>
关于Web报表FineReport打印的开发应用案例
查看>>
LINUX下的几个常见的环境变量
查看>>
蓝鸥Unity开发基础——基本数据类型学习笔记
查看>>
终于完成第一个C语言程序
查看>>
使用Xcode和Instruments调试解决iOS内存泄露
查看>>
root账户不允许远程登陆
查看>>
testlink使用说明
查看>>
word2013怎么设置页眉页脚
查看>>
iOS疯狂详解之imageIO完成渐进加载图片
查看>>
【实战学习】电子数据取证专题——网络数据分析溯源(上)
查看>>
curl获取错误信息 php请求api接口方法
查看>>
织梦dedecms v5.7使用sql标签实现静态分页
查看>>
嵌入式工程师的发展路线
查看>>
Git命令集之七——差异查询命令
查看>>