您的位置:首页 > 其它

[算法①]算法基础--渐进记法

2018-03-25 21:17 127 查看

[算法①]算法基础–渐进记法

我真的看不懂这些希腊文(O,Ω,ΘO,Ω,Θ),LUL!

‘Festinatione facit vastum’

环境

uname−runame−r

Python2.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渐进小于或等于
Ω渐进大于或等于
Θ渐进等于
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法