Algorithm Big-O中的时间复杂性
这个算法的BigO时间是多少Algorithm Big-O中的时间复杂性,algorithm,data-structures,big-o,time-complexity,Algorithm,Data Structures,Big O,Time Complexity,这个算法的BigO时间是多少 Input: Array A sorting n>=1 integers Output: The sum of the elements at even cells in A s=A[0] for i=2 to n-1 by increments of 2 { s=s+A[i] } return s 我认为这个方程的函数是F(n)=n*上限(n/2),但如何将其转换为bigO呢?这是一个O(n)算法,因为你看~n/2个元素。这是一个O(n)算法,因为你看~n
Input: Array A sorting n>=1 integers
Output: The sum of the elements at even cells in A
s=A[0]
for i=2 to n-1 by increments of 2
{
s=s+A[i]
}
return s
我认为这个方程的函数是F(n)=n*上限(n/2),但如何将其转换为bigO呢?这是一个O(n)算法,因为你看~n/2个元素。这是一个O(n)算法,因为你看~n/2个元素。该算法的时间复杂度将是
O(n)
,因为它所做的工作量随着输入的大小线性增长。另一种方法是在输入上循环一次——忽略这样一个事实,即它只查看一半的值,这与Big-O复杂度无关)。该算法的时间复杂度将是O(n)
,因为它所做的工作量随输入的大小线性增长。另一种看待它的方式是在输入上循环一次——忽略这样一个事实,即它只查看一半的值,这与Big-O的复杂性无关)。操作的数量与n*上限(n/2)
不成正比,而是n/2
,即O(n)
。由于big-O(包括任意系数的概念)的含义,O(n)
和O(n/2)
是绝对等效的-因此它总是写为O(n)
操作的数量与n*上限(n/2)
成正比,而是n/2
,即O(n)
。由于big-O(包括任意系数的概念)的含义,O(n)
和O(n/2)
是绝对等效的-因此它总是写为O(n)
如果数组中有n个元素,那么您的算法将进行n/2次迭代。每次迭代都需要固定的时间来完成。这给了我们O(N)复杂性,这就是原因
通常,算法的运行时间是数据大小的函数f(x)。说f(x)是O(g(x))意味着存在一些常数c,因此对于x f(x)的所有足够大的值,如果数组中有N个元素,那么您的算法将进行N/2次迭代。每次迭代都需要固定的时间来完成。这给了我们O(N)复杂性,这就是原因
通常,算法的运行时间是数据大小的函数f(x)。说f(x)是O(g(x))意味着存在一些常数c,对于x f(x)的所有足够大的值,以一种形式获得精确的运算次数和算法的增长顺序:
获取准确操作数和算法增长顺序的正式方式:
为什么你认为它是
n*天花板(n/2)
?为什么你认为它是n*天花板(n/2)
?