[理工] 资结 时间复杂度

楼主: justlike68 (DAY)   2017-08-01 22:09:10
大家好
对不起我问题有点多
先想请问这两个例题
第一张是题目,第二张铅笔写的是我算的
http://i.imgur.com/OWdeXce.jpg
http://i.imgur.com/O169qJD.jpg
想问的是这两题都没有给边界,所以就想说既然例题1是T(n/2)那就代代T(1),但由于程式码说n=1时会进入else那边循环,这样就不知道T(1)是多少了,例题2也是一样的疑惑,恳请解释
第二个
http://i.imgur.com/Atm8grf.jpg
不懂的是最后一项 ( lgn - (k-1) )为什么会等于1呢,不是应该是( lgn - k )才会等于1吗?还是说为了方便带公式才加1上去的
作者: sarsman (DeNT15T♠)   2017-08-01 23:15:00
第一个是n!=0时进else,n=0时return 1
楼主: justlike68 (DAY)   2017-08-02 07:48:00
谢谢回答! 但我想问的是他的边界条件是什么,我是想T(1)是他的边界条件,但T(1)代入原程式码中并不等于一个常数,所以不知道big O是多少,谢谢!
作者: nat99up (NAt)   2017-08-02 09:12:00
T(1)可以继续代下去 通常递回除法取floor
楼主: justlike68 (DAY)   2017-08-02 09:24:00
请问楼上,那么T(1)要代什么值呢,取floor是什么意思~?
作者: FRAXIS (喔喔)   2017-08-02 11:45:00
第一题 边界条件是 T(0)第二题 实际上式子表示的是(lgn)-(k-1)然后递回 最后一层的 k = lg n,所以就变成 1 了除法要取 floor 也就是只看商数的整数部分 已经有人解释了

Links booklink

Contact Us: admin [ a t ] ucptt.com