假设我有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而不是使用Big O表示法?
请指教。谢谢
答案 0 :(得分:1)
Big-O表示法处理任意大的n,即为了评估O(n),应该计算n - >无穷大的表达式。在你的情况下给出了n,因此可以精确计算整体运行时间,与你的方式完全相同。