复杂度函数的表示

各种复杂度函数的表示方法大致可按表达的精确程度分为下面的三个等级: (何种情况下用相应的复杂度函数)

1.解析表达式。 用解析表达式刻画复杂度函数是最精确的表达方式。例如 ·求n元中之最大元算法MaxElement的复杂度为 T(n) = W(n) = A(n) = n – 1 。 ·顺序搜索算法的最坏情形时间复杂度为 W(n) = n ; 在指定分布条件及 q = 1情形下的期望时间复杂度为 A(n) = ( n + 1)/2 。

2.阶(Order)表达式。 为了简化算法复杂度分析的方法,往往只需计算当问题规模较大时算法的渐进复杂度的阶。

定义1.1 称(复杂度)函数T(n)是O(f(n))的,即 T(n) = O(f(n)),如果存在常数c > 0与n0 ,当n > n0 时有T(n)≤cf(n) 。例如: T1(n) = (n + 1) / 2 = O(n) , T2(n) = 3n2 + 4n + 5 = O(n2)

定义1.2 称(复杂度)函数T(n)是Ω(f(n))的,即 T(n) = Ω(f(n)),如果存在常数c > 0与n0 ,当n > n0 时有T(n) ≥cf(n) 。 例如: T1(n) = (n + 1) / 2 = Ω(n) , T2(n) = 3n2 + 4n + 5 = Ω(n2)

定义1.3 称(复杂度)函数T(n)是θ(f(n))的, 即T(n) = θ(f(n)),如果存在常数c1, c2 > 0与n0 ,当n > n0 时有c1f(n)≥T(n)≥c2f(n) 。 例如: T1(n) = (n + 1) / 2 = θ(n) , T2(n) = 3n2 + 4n + 5 = θ(n2) 显然,如果T(n) = O(f(n))且T(n) = Ω(f(n)), 则T(n) = θ(f(n)) 。

3.多项式函数和指数函数。 多项式函数指T(n)为自变量n的多项式函数,例如T1(n)=n/2+1/2,T2(n)=3n2+4n+5等。 而指数函数如T3(n) = 2n + 5,T4(n) = 3n/2 – 8等等,自变量n出现在指数部分。这两类函数都是单增函数,但指数函数的增长速度要比多项式函数快得多。三种复杂度指标由细至粗, 对于一个新问题首先可用最后一种(是否为多项式)

时间: 2024-12-27 08:20:35

复杂度函数的表示的相关文章

模糊集合和隶属度函数--AForge.NET框架的使用(一)

原文:模糊集合和隶属度函数--AForge.NET框架的使用(一) 什么是AForge.NET? AForge.NET是一个为开发人员和研究人员开发的框架,它可以用于计算机视觉,遗传算法,图像处理,神经网络,机器人学习与控制,机器学习和模糊系统. AForge.NET的官方文档比较丰富,网上也有一些相关文章,但是多是关于视觉和神经网络的,而我个人对模糊系统比较感兴趣,故写下自己的一些感受. 模糊系统和模糊理论简述 模糊系统主要是区别于经典系统(或称为常规系统).在研究人机系统,管理系统,特别是经

oracle中字符串类似度函数实測

转载请注明出处:http://blog.csdn.net/songhfu/article/details/40074795 主要利用:oracle函数-SYS.UTL_MATCH.edit_distance_similarity SQL脚本: select * from (select '河北沧州东塑股份有限公司',name, SYS.UTL_MATCH.edit_distance_similarity('河北沧州东塑股份有限公司',name) 相似度 from test_pp t) order

oracle中字符串相似度函数实测

转载请注明出处:http://blog.csdn.net/songhfu/article/details/40074795 主要利用:oracle函数-SYS.UTL_MATCH.edit_distance_similarity SQL脚本: select * from (select '河北沧州东塑股份有限公司',name, SYS.UTL_MATCH.edit_distance_similarity('河北沧州东塑股份有限公司',name) 相似度 from test_pp t) order

SQL Server对比两字段的相似度(函数算法)

原文:SQL Server对比两字段的相似度(函数算法) 相似度函数 概述    比较两个字段的相似度    最近有人问到关于两个字段求相似度的函数,所以就写了一篇关于相似度的函数,分别是“简单的模糊匹配”,“顺序匹配”,“一对一位置匹配”.在平时的这种函数可能会需要用到,可能业务需求不一样,这里只给出参照,实际情况可以相对修改. 本文所有的两个字段比较都是除以比较字段本身,例如A与B比较,找出的长度除以A的长度,因为考虑如果A的长度大于B的长度,相似度会超100%,例如‘abbc’,'ab'.

算法录 之 复杂度分析。

一个算法的复杂度可以说也就是一个算法的效率,一般来说分为时间复杂度和空间复杂度... 注意接下来说的均是比较YY的,适用与ACM等不需严格分析只需要大致范围的地方,至于严格的算法复杂度分析的那些数学证明,主定理什么的在<算法导论>这本书上有十分详细的讲解,网上应该也会有人写过,这里就不多说了(其实,是我不会而已o(╯□╰)o...). — 到底啥是复杂度呢?先来个栗子. 小明有10个苹果,有一天他饿了,然后准备吃掉一个苹果,但是小明有中二病,他要吃里面重量最大的那个,于是...他需要一个找到那

mysql函数大全

mysql函数大全 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2');    -> 50mysql> select ASCII(2);    -> 50mysql> select ASCII('dx');    -> 100也可参见ORD()函数. ORD(str) 如果字符串str最

遗传算法优化BP神经网络——非线性函数拟合

遗传算法基本的操作分为: 1.选择操作 2.交叉操作 3.变异操作 遗传算法的基本要素包括染色体编码方法.适应度函数.遗传操作和运行参数. 遗传算法优化BP神经网络算法流程如图3-4所示:

遗传算法的C语言实现(一):以非线性函数求极值为例

以前搞数学建模的时候,研究过(其实也不算是研究,只是大概了解)一些人工智能算法,比如前面已经说过的粒子群算法(PSO),还有著名的遗传算法(GA),模拟退火算法(SA),蚁群算法(ACA)等.当时懂得非常浅,只会copy别人的代码(一般是MATLAB),改一改值和参数,东拼西凑就拿过来用了,根本没有搞懂的其内在的原理到底是什么.这一段时间,我又重新翻了一下当时买的那本<MATLAB智能算法30个案例分析>,重读一遍,发现这本书讲的还是非常不错的,不仅有现成算法的MATLAB实现,而且把每一种算

SQL Server相似度比较函数

相似度函数 概述    最近有人问到关于两个字段求相似度的函数,所以就写了一篇关于相似度的函数,分别是“简单的模糊匹配”,“顺序匹配”,“一对一位置匹配”.在平时的这种函数可能会需要用到,可能业务需求不一样,这里只给出参照,实际情况可以相对修改. 本文所有的两个字段比较都是除以比较字段本身,例如A与B比较,找出的长度除以A的长度,因为考虑如果A的长度大于B的长度,相似度会超100%,例如‘abbc’,'ab'. 如果大家想除以B的长度,只需要在语句末尾将‘SET @[email protecte