快排的递推公式如下:
T(n) = T(i)+T(n - i - 1) +cN
T(i)是中间元分隔开的一半递归公式,T(n - i - 1)是另外一半的
书上说的是cN是花费在分割上的线性时间,
那么c这个元素是什么?
我觉得这个图是解释快排里非常好的一个了。
我觉得理解完快排原理以后,再去看书里的递推公式,这个公式其实是为了算出时间复杂度。即总时间等于每次分片时间之和。
即T(N) = c(N) + c(N-1) + ....c(1),即最坏情况下的时间复杂度为 1 + 2 + ... + N 为 O(N^2)。
明白了,类似函数表示划分中间值得时间。
最好能多贴上来一点,看看上下文
这个书很好,但是就是有些东西没得说明,后面写的都明白就是不知道这个c是从哪里跑出来的。
百度一篇易于理解的快排文章就行了,没必要看这种所谓公式。
– 。淑女范erり 4年前@。淑女范erり: 看的书上的内容,还是以书上为主,网上博客水平层次不齐
– dark_Souls 4年前@dark_Souls: 看了你的截图,cN就是N个数,分割花费的时间, c(N-1)就是N-1个数分割花费的时间,以此类推。
– 。淑女范erり 4年前你说的有道理,写书比网络博客要严谨一点,但是也繁琐很多,我看你截图里,创造了不少名词和不通用的术语。。 我给你找个容易理解的图。。
@。淑女范erり: 感觉你这开发十年了啊
– dark_Souls 4年前@。淑女范erり: 没办法这是翻译版,它里面确实有很多东西不给解释,但是这书确实是好东西。
– dark_Souls 4年前@dark_Souls: 赞同,好书的内容肯定比看网文好,深入很多。
– 。淑女范erり 4年前@。淑女范erり: 您做过WEB开发吗?能不能帮我看看我最新的提问?
– dark_Souls 4年前