C++算法的执行时间

Execution time of C++ algorithm

本文关键字:执行时间 算法 C++      更新时间:2023-10-16

如果我知道 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 的搜索时间应该大致相同。具体结果取决于算法实现细节。