Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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_Recursion_Time Complexity - Fatal编程技术网

Algorithm 顺序搜索的时间复杂度

Algorithm 顺序搜索的时间复杂度,algorithm,recursion,time-complexity,Algorithm,Recursion,Time Complexity,我试图找到选择排序的时间复杂度,它具有以下等式T(n)=T(n-1)+O(n) 首先我假设它是T(n)=T(n-1)+n。。不过n更容易…. 图T(n-1)=T(n-2)+(n-1) 和T(n-2)=T(n-3)+(n-2) 这使得T(n)=(T(n-3)+(n-2))+(n-1)+n因此其T(n)=T(n-3)+3n-3 K而不是(3)T(n)=T(n-k)+kn-k因为n-k>=0..=>n-k=0和n=k返回等式itsT(n)=T(0)//这是C+n*n-n这使得它成为C+n^2-n。。所


我试图找到选择排序的时间复杂度,它具有以下等式
T(n)=T(n-1)+O(n)

首先我假设它是T(n)=T(n-1)+n。。不过n更容易….
T(n-1)=T(n-2)+(n-1)
T(n-2)=T(n-3)+(n-2)


这使得
T(n)=(T(n-3)+(n-2))+(n-1)+n
因此其
T(n)=T(n-3)+3n-3



K而不是(3)<代码>T(n)=T(n-k)+kn-k因为n-k>=0..=>
n-k=0
n=k


返回等式its
T(n)=T(0)//这是C+n*n-n


这使得它成为
C+n^2-n
。。所以它是O(n^2)。。是我做的ryt

是的,您的解决方案是正确的。你把O(n)和O(n-1),O(n-2)结合起来。。。然后得出O(n^2)。您可以应用
O(n)+O(n-1)=O(n)
,但只能有限地应用。在一个系列中,它是不同的

T(n) = (0 to n)Σ O(n - i)
忽略O()中的i,结果是O(n^2)


您给出的递归关系
T(n)=T(n-1)+O(n)
适用于选择排序,其总体时间复杂度为O(n^2)。选中此项以验证

是,您的解决方案是正确的。你把O(n)和O(n-1),O(n-2)结合起来。。。然后得出O(n^2)。您可以应用
O(n)+O(n-1)=O(n)
,但只能有限地应用。在一个系列中,它是不同的

T(n) = (0 to n)Σ O(n - i)
忽略O()中的i,结果是O(n^2)

您给出的递归关系
T(n)=T(n-1)+O(n)
适用于选择排序,其总体时间复杂度为O(n^2)。检查此项以进行验证

在迭代i中,我们找到最小剩余项的索引min。 然后交换a[i]和a[min]

因此,选择排序使用

(n-1)+(n-2)+..+2+1+0=(n-1)*(n-2)/2=O(n*n)比较

和n次交换(交换)。

从上面看

根据上面给出的递推关系

=> T(n) = T(n-1)+ O(n)
=> T(n) = T(n-1)+ cn, where c is some positive constant
=> T(n) = cn + T(n-2) + c(n-1)
=> T(n) = cn + c(n-1) +T(n-3)+ c(n-2)
这样下去,我们终于

=> T(n) = cn + c(n-1) + c(n-2) + ...... c (total no of n terms)
=> T(n) = c(n*(n-1)/2)
=> T(n) = O(n*n)
编辑

最好将θ(n)替换为cn,其中c是常数。有助于更轻松地可视化方程式

在迭代i中,我们找到最小剩余项的索引min。 然后交换a[i]和a[min]

因此,选择排序使用

(n-1)+(n-2)+..+2+1+0=(n-1)*(n-2)/2=O(n*n)比较

和n次交换(交换)。

从上面看

根据上面给出的递推关系

=> T(n) = T(n-1)+ O(n)
=> T(n) = T(n-1)+ cn, where c is some positive constant
=> T(n) = cn + T(n-2) + c(n-1)
=> T(n) = cn + c(n-1) +T(n-3)+ c(n-2)
这样下去,我们终于

=> T(n) = cn + c(n-1) + c(n-2) + ...... c (total no of n terms)
=> T(n) = c(n*(n-1)/2)
=> T(n) = O(n*n)
编辑


最好将θ(n)替换为cn,其中c是常数。有助于更轻松地可视化方程式。

不太好。它不是
T(n-k)+kn-k
,而是
T(n-k)+kn-sum{1到k-1}j
。不知道为什么??它总是得到K而不是和:s
T(n-K)+(n-(K-1))+(n-(K-2))+…+(n-1)+n不完全正确。它不是
T(n-k)+kn-k
,而是
T(n-k)+kn-sum{1到k-1}j
。不知道为什么??它总是得到K而不是和:s
T(n-K)+(n-(K-1))+(n-(K-2))+…+(n-1)+n