运行 数组大小按常量增加时的计算
Calculation of Running time of array when size increase by constant
我正在学习数据结构和运行时间计算。我在理解增加数组大小的 运行 时间计算时遇到了问题。
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)
任何人都请帮助我理解 运行 时间的最终计算。
上面分析的最后一步使用了众所周知的 summation rule。
从 k
中的此表达式展开 N
会产生算法渐近行为的上限 O(N^2)
。
请注意,在实践中,术语 "running time" 可能会有些误导,因为实际的 运行ning time对于一个关于增长实体(例如数组的大小)的算法不一定直接对应于时间复杂度或渐近行为 算法(取决于,例如,特定系统如何处理和移动内存中的大数据结构等)。我们真的只对复杂性感兴趣,因为相对而言,它给出了当输入数据变大时算法将如何表现的估计。也许苹果和苹果,但从这个意义上说,我认为 "running time" 有点容易被误解;例如,我们的复杂性分析的 reader 可能认为我们实际上是以 SI 时间单位来衡量算法将 运行 持续多长时间,而实际上我们只是在 算法在其渐近极限下的行为。
一些奇闻:上面的这个求和规则在(传闻的)故事中起着核心作用,这个故事讲述了著名数学家高斯在 8 岁时如何在给定这样的情况下即时对 1 到 100 的数字求和他的老师布置的作业,同时他的同学们尽最大努力(慢慢地)将这些数字逐个相加。
我正在学习数据结构和运行时间计算。我在理解增加数组大小的 运行 时间计算时遇到了问题。
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)
任何人都请帮助我理解 运行 时间的最终计算。
上面分析的最后一步使用了众所周知的 summation rule。
从 k
中的此表达式展开 N
会产生算法渐近行为的上限 O(N^2)
。
请注意,在实践中,术语 "running time" 可能会有些误导,因为实际的 运行ning time对于一个关于增长实体(例如数组的大小)的算法不一定直接对应于时间复杂度或渐近行为 算法(取决于,例如,特定系统如何处理和移动内存中的大数据结构等)。我们真的只对复杂性感兴趣,因为相对而言,它给出了当输入数据变大时算法将如何表现的估计。也许苹果和苹果,但从这个意义上说,我认为 "running time" 有点容易被误解;例如,我们的复杂性分析的 reader 可能认为我们实际上是以 SI 时间单位来衡量算法将 运行 持续多长时间,而实际上我们只是在 算法在其渐近极限下的行为。
一些奇闻:上面的这个求和规则在(传闻的)故事中起着核心作用,这个故事讲述了著名数学家高斯在 8 岁时如何在给定这样的情况下即时对 1 到 100 的数字求和他的老师布置的作业,同时他的同学们尽最大努力(慢慢地)将这些数字逐个相加。