Data structures 阵列尺寸按常数增大时运行时间的计算

Data structures 阵列尺寸按常数增大时运行时间的计算,data-structures,big-o,Data Structures,Big O,我正在学习数据结构和运行时间计算。我在理解增加数组大小的运行时间计算时遇到了一个问题 1) 如果我们将数组的大小增加常量 N=4 will be N0 N=8 will be N0+c N=12 will be N0+2c . . No+kc N=N0 +kc N=N0+kc k=(N−N0 )/c k=(N−N0)/c Running time= N0 k+c(1+2+,...,k) N0 k+c(1+2+,...,k) N0 k+ck(k+1)/2 which i

我正在学习数据结构和运行时间计算。我在理解增加数组大小的运行时间计算时遇到了一个问题

1) 如果我们将数组的大小增加常量

N=4 will be N0  

N=8 will be N0+c 

N=12 will be N0+2c 
.
.
No+kc

N=N0 +kc 
N=N0+kc

k=(N−N0 )/c 
k=(N−N0)/c

 Running time= N0 k+c(1+2+,...,k) 
N0 k+c(1+2+,...,k)

N0 k+ck(k+1)/2 which is equal to  O(N2)

请大家帮助我了解运行时间的最终计算。

以上分析的最后一步使用了一个众所周知的公式

k
中的表达式中展开
N
将产生算法渐近行为的上界,即
O(N^2)

请注意,在实践中,术语“运行时间”可能有点误导,因为关于增长实体(例如数组大小)的算法的实际运行时间不一定直接对应于算法的时间复杂性或渐近行为(取决于,例如,特定系统如何处理和移动内存中的大数据结构等)。我们真正感兴趣的只是复杂性,因为相对而言,它给出了算法在输入数据变大时的行为估计。可能是苹果和苹果,但从这个意义上说,我相信“运行时间”有点容易产生误解;例如,我们复杂性分析的读者可能认为我们实际上是在以SI时间单位表示算法将运行多长时间的度量,而事实上,我们只是在算法的渐近极限内给出算法行为的界


一些珍品:在(谣传)著名数学家高斯(Gauss)8岁的时候,在老师布置的任务中,他在飞行中将1到100的数字相加,而他的同学们则尽最大努力(慢慢地)将这些数字一个接一个地相加