算法 - 比较性能

标签 algorithm

假设我有 3 个算法 A、B 和 C 来处理 n 条记录。

algorithm A takes 80n + 40 steps
algorithm B takes n^2 + 30n steps
algorithm C takes 2^n steps

决定哪些算法在执行时最有效

i)  10 < n < 50 

我解决这个问题的方法是假设 n 等于一个值,例如

对于 i) 假设 n = 20

所以

algo A - 80(20) + 40 = 1640  steps
algo B - 20^2 = 400 steps
algo C - 2^20 = 1048576 steps

因此算法 B 是最有效的。

我不太确定我是否正确评估了这 3 种算法的性能,因为我只是用一个值代替 n,而不是使用大 O 表示法?

请指教。谢谢

最佳答案

Big-O 表示法处理任意大的 n,即为了计算 O(n),应该计算 n--> 无穷大的表达式。在你的情况下,n 是给定的,因此可以精确计算总运行时间,完全按照你的方式计算。

关于算法 - 比较性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259447/

相关文章:

algorithm - 如何找到通过特定边的循环?

list - 在列表中找到比当前元素大 n 倍的第一个元素

algorithm - 如何设计一种算法来查找多个变量的协方差?

algorithm - 解决有序列表中的模糊类别

java - 这种链表合并排序算法的时间复杂度

java - 为什么 3 种算法的平均时间是负数?

c - 计算每个像素8-邻接最大像素灰度值的最快方法

c# - 围绕钟面或指南针(或任何其他圆圈)导航的算法或函数?

c++ - MPI_Reduce 选择前 k 个结果

algorithm - 删除后使图不再连通的最小顶点数