[算法①]算法基础--渐进记法
2018-03-25 21:17
127 查看
[算法①]算法基础–渐进记法
我真的看不懂这些希腊文(O,Ω,ΘO,Ω,Θ),LUL!‘Festinatione facit vastum’
环境
uname−runame−rPython2.7 or Python3.6
Pycharm
前言:
从十九世纪开始,渐进记法一直就是人们用于分析算法和数据结构的重要工具。其核心思想是:想提供一种资源表示形式,主要用于分析某项功能在应对一定规模参数时需要的资源(通常是时间,有时候也会是内存)。例如运行时间:
T(n)=2.4n+7T(n)=2.4n+7
那我们就要考虑一个问题了,这个用的是哪个单位,时间是(s?ms?s?ms?)内存是(b?Mb?b?Mb?),似乎我们并不在意这些。因为不会对我们的结果造成任何影响,我们甚至可以用木星年来表示(11.86年,4332.589天11.86年,4332.589天),我们使用渐进记法就是为了将这些细节全部忽略掉。
最终,我们要明白的是运行时间取决于某个特性的基本操作被执行的次数。
希腊字母(O,Ω,ΘO,Ω,Θ)?
渐进记法使用的是一组由希腊字母构成的记号系统。这里面最重要的记号就是我们的(OO,omicron,我们不是叫他大O),(ΩΩ,omega),(ΘΘ,theta)。其中,O的定义可以看作其他的两个符号的基础,表达式O(g)O(g)代表的是一组与某个函数g(n)g(n)有关的函数集合。若要让某函数f(n)f(n)属于该集合,该函数须满足以下条件:存在自然数n0n0和正数cc,对于所有的nn>n0n0都有:
f(n)f(n)<=cg(n)cg(n)
关系
他们之前的关系类似于高数中的渐进线(高数,[捂脸])符号 | 含义 |
---|---|
O | 渐进小于或等于 |
Ω | 渐进大于或等于 |
Θ | 渐进等于 |
相关文章推荐
- 算法学习四:算法性能分析理论基础——函数增长与渐进分析
- 算法基础-渐进记号
- 算法分析基础---渐进符号和递归式分析
- 算法分析基础---渐进复杂度
- 算法基础(二)——算法时间复杂度和渐进时间复杂度
- 两个基础算法
- C#算法基础之递归排序
- noip数据结构与算法 之 基础小算法 1 一维前缀和维护
- 常见基础算法大集合(C语言实现)
- 算法基础-->贪心和动态规划
- 无向图相关算法基础
- 算法基础—总结
- 算法基础复习-BubbleSort
- 几大基础算法
- 十大基础算法
- 算法基础复习-SelectionSort
- 基础图论问题算法总结
- 算法设计与应用基础:第一周
- 算法设计与应用基础-第一周题目
- [算法基础]几个关于递归算法的练习题