快速排序算法的时间复杂度分析.docxVIP

  • 15
  • 0
  • 约1.05千字
  • 约 3页
  • 2017-09-01 发布于重庆
  • 举报
快速排序算法的时间复杂度分析[详解Master method]?经常听人谈起各种排序算法的时间复杂度,这个是O(n2)的,那个是O(n)的,这些人讲起来可谓滔滔不绝,但是你停下来问问他为什么这个是这个复杂度,他是怎么算出来的?往往没几个人能说出来。这个是一个浮躁的社会,大家都追求速度,到处复制,粘贴代码,拿人家的代码跑一便,就说自己会了这个,会了那个..?也许有人觉得算法分析的太深没有用,但是笔者认为,有时候了解细节很重要,比如快速排序算法的时间复杂度,有时候是O(nlgn),?有时候就是O(n2),?在你不知道自己数据特性的情况下,很难选择是否使用快速排序,因为他并不总是最快的。?说了些没用的,让我们进入正题吧:?为了分析快速排序的时间复杂度,请先看下面的主定理:?主定理: T?[n]?= aT[n/b]?+?f (n)其中?a?=?1?and?b 1?是常量?并且?f (n)?是一个渐近正函数,?为了使用这个主定理,您需要考虑下列三种情况:???想必大家都知道快速排序的过程,如果对这个过程有什么不了解,请参考下文:/pugang/archive/2012/06/27/2565093.html/pugang/archive/2012/06/27/2565093.html?快速排序的每一次划分把一个?问题分解成两个子问题,其中的关系可以用下式表示:?T[n] = 2T[n/2]

文档评论(0)

1亿VIP精品文档

相关文档