- 1、本文档共85页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法分析基本概念
* 例:f(n)=3n+2,求g(n),使得f(n) =Θ(g(n))。 解: 当n≥2,f(n)=3n+2≤3n+n=4n 当n≥1,f(n)=3n+2≥3n 故当n≥2,有3n≤f(n)≤4n 令g(n)=n,因为当n≥2时有3g(n)≤f(n)≤4g(n) 所以 f(n)= Θ(n) 解2:令g(n)=n * Θ符号提供了算法运行时间的精确描述,由于算法InsertionSort的运行时间由线性到平方排列,因此不能用Θ描述。而SelectionSort算法和BottomUpSort算法可分别使用Θ(n2)和Θ(nlog2n)精确描述。 f(n)=Θ(g(n))是一个等价关系,由这个关系导出一个等价类,称为复杂性类。 例:f(n)=3n+2、g(n)=n,显然有f(n)=Θ(g(n))。 表示这二个函数属同一复杂性类。 ㈤ o符号(读作小o) 由等价关系f(n)=Θ(g(n)) 导出了一个等价类,为了说明二个函数属于不同类,引入了o符号。f(n)=o(g(n)),当且仅当f(n)=O(g(n)),但g(n)≠O(f(n))。 * 定义1.3(Page 19) 令f(n)和g(n)是从自然数集到非负实数集的二个函数。如果对于每一个常数c0,存在一个自然数n0,使得 n≥n0 ,f(n)cg(n) 则称f(n) = o(g(n)) 。 形式地说明了当n→∞时,f(n)对于g(n)来说可以忽略不计。f(n)=o(g(n)),当且仅当f(n)=O(g(n),但g(n) ≠O(f(n))。 例如:“n是o(n2)的”等价于“n是O(n2),但n2≠O(n)”。 * * 我们用f(n)﹤g(n)来表示f(n)是o(g(n))的。用该记号可简明地表示复杂性的层次 。 1﹤log n﹤n1/2﹤n﹤n log n﹤n2﹤n3﹤2n﹤n! O 类似于 ≤ Ω 类似于 ≥ Θ 类似于 = o 类似于 < 不要将确切的关系和渐近符号相混淆。例如: 100n≥n 100n=O(n) n≤100n 100n=Ω(n) n≠100n 100n=Θ(n) 一般地,设f(n)=aknk+ak-1nk-1+…+a1n+a0,则f(n)=Θ(nk),它蕴含着f(n)=O(nk),f(n)=Ω(nk) 。 * 例1.5(Page17) f(n)=10n2+20n,求g(n),使得f(n) =Θ(g(n))。 解: 当n≥1,f(n)= 10n2+20n ≤30n2 ,f(n)=O(n2) 当n≥1,f(n)=10n2+20n ≥n2 ,f(n)= Ω(n2) 故当n≥1,有n2 ≤f(n)≤ 30n2 令g(n)=n2,因为当n≥1时有g(n)≤f(n)≤30g(n) 所以 f(n)= Θ(n2) 解2:令g(n)=n2 * 例1.6(Page 17) 令f(n) =aknk+aknk+…+akn+a0 , 则f(n) =Θ(nk)= f(n)=O(nk), f(n)= Ω(nk) 例1.7(Page 17) 例1.9(Page 17) 任一常函数是Θ (1),O(1),Ω (1) * 证明当n≥?时有2n<n! 证: 由此可得:2n=o(n!) * 例1.12 (Page 17) * 例1.14 (Page 18) 同理: * * 1.9 空间复杂性 空间复杂性定义(P19) 为了求解问题的实例,执行计算步骤所需要的内存空间的数目,它不包括分配用来存储输入的空间。换句话说,仅仅是算法需要的工作空间。 空间复杂性的计算要比时间复杂性简单得多,可将时间复杂性的定义和符号移植到空间复杂性的表示。 例1:在算法LinearSearch中,仅需要一个内存单元保存有哪些信誉好的足球投注网站结果。如果加上局部变量,可以得出需要的空间数量为Θ(1)。同理算法BinarySearch、SelectionSort和InsertionSort。 * 例2: 在算法Merge中,需要和输入大小相同的存储器n个,因此空间复杂性为Θ(n)。同理算法BottomUpSort。 许多问题的处理需要在时间和空间之间平衡。一般来说,给算法分配的空间越大,算法运行速度就越快,反之亦然。 迄今为止所讨论的大多数算法中,增加空间并不可能导致算法速度的加快,有可能反而降低。但是,减小空间会导致算法速度的降低是毫无疑问的。 * 1.11 如何估计算法运行时间 通过计算迭代
文档评论(0)