Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 递推关系与时间复杂性_Algorithm_Time Complexity_Complexity Theory - Fatal编程技术网

Algorithm 递推关系与时间复杂性

Algorithm 递推关系与时间复杂性,algorithm,time-complexity,complexity-theory,Algorithm,Time Complexity,Complexity Theory,以下伪代码的递归关系和时间复杂度是多少 temp = 1 repeat for i=1 to n temp = temp +1 n=n/2 until n>=1 当我们处理渐近符号,如大OH、Omega和θ时,我们不考虑常数。毫无疑问,你的时间复杂性会是这样的 n + n/2 + n/4 + ... + 1 但若你们加上这个递减的G.p级数,你们会得到精确的答案,等于c*n,其中c是大于1的常数。但在我前面说过的渐近表示法中,常数并不重要

以下伪代码的递归关系和时间复杂度是多少

temp = 1 
repeat 
    for i=1 to n 
        temp = temp +1 
    n=n/2
until n>=1

当我们处理渐近符号,如大OH、Omega和θ时,我们不考虑常数。毫无疑问,你的时间复杂性会是这样的

    n + n/2 + n/4 + ... + 1
但若你们加上这个递减的G.p级数,你们会得到精确的答案,等于c*n,其中c是大于1的常数。但在我前面说过的渐近表示法中,常数并不重要,所以无论c的值是2、50、100、10000或其他任何值,它都只会开启


另一件事,尽量不要使用Master定理来解决递归关系,而使用递归树方法,因为它是纯概念性的,可以帮助您建立概念,并且可以在任何情况下使用。马斯特定理就像一条捷径,也有局限性。

递推关系?这里的递归在哪里?据我所知,可以在此基础上定义递归关系,因为它将再次运行相同的循环,每次值为n的一半,因此Tn/2将是递归的一部分。这有意义吗?是的,你可以,但这不是真的必要。那么,这里的时间复杂度是多少?我所指的那本书把它解为Tn=Tn/2+n,并应用大师定理,上面提到的答案是。但是如果你考虑它,循环将运行N+N/2 +N/4 +N/16等,直到N变为1。这不是比开大吗?毫无疑问,你的循环会像…:不,不是。请参阅对问题的评论。@Henry实际上我想在这里提及时间复杂性。时间复杂度将类似于n+n/2+n/4等等。。。。它就像拿n个时间的问题分解成一个大小为n/2的子问题,利用这个,我们将得到书中提到的结果