我正在从一个大小为6000的二叉搜索树(排序为单侧树)中删除3000个元素。我需要计算完成所有删除所需的时间
是我干的
bst2 = foo.BinarySearchTree() #init
insert_all_to_tree(bst2,insert_lines) #insert 6000 elements
start = datetime.now() #start time
for idx, line in enumerate(lines):
bst2.delete(line) #deleting
if (idx%10 == 0):
print("deleted ", (idx+1), "th element - ", line)
end = datetime.now() #completion time
duration = end - start
print(duration.microseconds) #duration in microseconds
我得到的答案是761716微秒,这甚至不到一分钟,而我的实际代码运行了大约5小时。我期望的范围是10^9 - 10^10。我甚至检查了python中允许的最大整数,看看它是否与此相关,但显然这不是问题所在。
为什么我得到了一个错误的答案?
1条答案
按热度按时间ne5o7dgx1#
datetime.now()
返回一个datetime
,所以用它做数学运算是行不通的,你可以使用time.time()
(Python〈v3.3),time.perf_counter()
(Python v3.3到v3.7)或者time.perf_counter_ns()
(Python〉v3.7)。time.time()
和time.perf_counter()
都返回float
,并且time.perf_counter_ns()
返回int
。