《数据结构与算法分析:C语言描述_原书第二版》CH2算法分析_课后习题_部分解答.pdfVIP

  • 3
  • 0
  • 约8.44千字
  • 约 3页
  • 2024-03-19 发布于上海
  • 举报

《数据结构与算法分析:C语言描述_原书第二版》CH2算法分析_课后习题_部分解答.pdf

《数据结构与算法分析:语⾔描述原书第⼆版》算法分析

C_CH2

课后习题部分解答

__

对于⼀个初学者来说,作者的SolutionsManual把太多的细节留给了读者,这⾥尽⾃⼰的努⼒给出部分习题的详解:

不当之处,欢迎指正。

1.5222NN/223

按增长率排列下列函数:,,,,,,,,,,,,,。指出哪些函数

1N√2NNNlogNNloglogNNlogNNlog(N)2/N2237NlogNN

以相同的增长率增长。

答:排列如下221.5223N/2N。

2/N37√2NNloglogNNlogNNlog(N)NlogNNNNlogNN22

其中,NlogN与Nlog(N2)的增长率相同,均为O(NlogN)。

21.53N/2

补充说明:其中与,与⼤关系的判定,可以连续使⽤洛必达法则(时,两个函数⽐值的极限,等于它

a)NlogNNN2N-∞

们分别求导后⽐值的极限)。当然,更简单的是两边直接求平⽅。

同时注意⼀个常⽤法则:对任意常数,k。这表明对数增长得⾮常缓慢。习题中我们会证明它的⼀个更严格

b)klogN=O(N)3

的形式。

2函数NlogN与N1ε/√logN(ε0)哪个增长得更快?

分析:我们⾸先考虑的可能是利⽤洛必达法则,但是对于第⼆个函数其上下两部分皆含有变量,难以求导(当然也不是不⾏,就是⿇烦

些,如果你愿意设y=N1ε/√logN,然后对两边取对数的话)。这⾥我们将利⽤反证法:

要证NlogNN1ε/√logN,即证logNNε/√logN。既然⽤反证法,那么我们假设Nε/√logNlogN。两边取对数有ε/√logNlogN

。即。设,则22,这显然与连续中⽭盾,因此假设ε/√logN不成⽴。因

loglogNε√logNloglogNt=logNε√tlogt=εtlogt1b)NlogN

此函数N1ε/√logN增长得更快。

证明对任意常数,k。

3

文档评论(0)

1亿VIP精品文档

相关文档