如何在Avl Trees中找到时间?

时间:2016-06-20 12:17:35

标签: algorithm data-structures

使用AVL树的应用程序的操作是O(log N)时间。大概需要50 在10,000个元素的集合上运行的毫秒数。你会期待多长时间 采取运行100,000个元素的集合?

2 个答案:

答案 0 :(得分:2)

您无法猜测使其在较大的集合上运行所需的时间,因为您必须考虑应用程序的所有常量计算成本(即加载,预处理等......)

但是,你可以找到一个上限:log(10000)= 4,log(100000)= 5,所以你可以期望它在不到5/4 * 50 = 62.5 ms的时间内运行,只要你已经达到了渐近行为。

无论如何,O(log N)是一种非常有效的复杂性,你的算法应该能很好地扩展到大型实例。

答案 1 :(得分:0)

要处理N个元素,您需要大概的时间

T ~ C * N * log (N)

for 10000:

 50 ms =  C * 10^4 * log(10^4) = C * 4 * 10^4 * log(10)
 C = 50ms / (4 * 10^4 * log(10))

表示100000:

T ~ 50ms / (4 * 10^4 * log(10)) * 5 * 10^5 * log(10)
T ~ 50ms  * 5 * 10 / 4 = 625 ms

所以你会期待大约625毫秒的时间