algorithm - 当计算机速度加倍时计算 O(n)
问题描述
假设在速度为 X 的计算机上解决了 O(n) 的算法。现在,当在速度为 2X 的计算机上使用相同的算法时,可以同时解决大小为 2N 的问题。
现在,如果我们在速度为 X 的计算机上有一个 O(logn) 的算法,我如何计算可以在 2X 速度的计算机上同时解决的问题的大小。
对于 o(n^2) 也是如此。
这不是任何作业问题等。只是好奇,正如我正在阅读的书对上面的问题 2 所说,它是 O(n^2),我不明白。
解决方案
只有当您知道运行时间的大θ,并且只有在问题规模足够大的情况下,这种估计才有可能。
对于 2)2*log(n) = log(n^2)
对于 3)2*n^2 = (n*sqrt(2))^2
推荐阅读
- android - Android 不会从任何区域(例如 ex.values_zh)中获取专门针对区域设置 zh_US 的 strings.xml
- python - 烧瓶后:405 方法不允许
- windows - Windows 命令提示符中的 psql:如何输入新行?
- reactjs - “PropsWithChildren”类型上不存在属性“金额”
' - c# - 从数据表动态更新 LiveCharts
- javascript - 使用 React/Redux 处理来自 API 的大量图像的最佳方法?
- c# - 使用 Options .NET C# 从 appsettings 访问 Json 数组
- javascript - 选择项目后在下拉菜单中更改按钮 innerHTML
- qt - 在 Q_PROPERTY 中使用自定义类型
- python - Python Pandas:从函数返回 DataFrame 产生 NoneType