Algorithm Big-O中的时间复杂性

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

这个算法的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/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)