C++算法的执行时间
Execution time of C++ algorithm
如果我知道 0,00096 ms 是 c++ 中具有 290 024 元素的地图中的平均搜索时间如何计算包含 1 000 000 个元素的地图的搜索时间?
我知道搜索算法对于地图具有复杂性 O(Log N),对于Unordered_map具有 O(1)。
它的复杂度是线性的,我只能将时间乘以 1000 000/290024
对于对数搜索,时间将是
T ~= constant * log(N)
T / log(N) ~= constant
因此,要估计尺寸N2
给定时间T2
N1
的给定时间T1
:
T2 / log(N2) ~= T1 / log(N1)
T2 ~= T1 * log(N2) / log(N1)
~= 0.00096ms * log(1000000) / log(290024)
~= 0.00105ms
对于常量时间哈希查找,时间不会更改。在实践中,它可能不会完全是恒定时间;但是没有简单的方法来估计它会是什么。
线性 - O(N),而不是 O(1) 或 O(Log N)。如果您使用的是哈希图,则 290 024 和 1000 000 的搜索时间应该大致相同。具体结果取决于算法实现细节。
相关文章:
- 简单C++"Hello World"程序的执行时间长
- 我使用 OpenMP 的线程越多,执行时间就越长,这是怎么回事?
- 为什么切换 for 循环的顺序会显著改变执行时间?
- cmd.exe与Powershell中C++程序的不同执行时间
- pthread执行时间比顺序执行时间差
- OpenCV 函数 cv::remap() 的执行时间更长,当程序在两者之间进入睡眠状态时
- 为什么 std::chrono 在测量循环和编译器优化的并行 OpenMP 的执行时间时不起作用?
- 我需要帮助来缩短检索 SSL 证书的执行时间
- 如何测量cudaMalloc执行时间
- c++中的执行时间和检查流状态
- 为什么for循环中的异步不能提高执行时间
- 为什么 C++ openMP 程序执行时间更长
- 测量任何 Windows 可执行文件的内存使用情况和执行时间
- 需要减少我的C++代码的执行时间
- 如何在 ubuntu 上的 php 脚本中获取程序(c,c++,java,python,php)的执行时间和内存使用量?
- 在Qt中设置pixmap时的执行时间很奇怪
- 如何减少算法执行时间
- C++算法的执行时间
- 线程:如何在C或C++中精确计算算法的执行时间(函数的持续时间)
- 比较算法的执行时间:为什么执行顺序很重要?