在测试时间的代码里应该把验证堆实现是否正确的代码去掉
来源:8-5 Heapify 和 Replace
zhured
2019-08-06
在测试时间的代码里应该把验证堆实现是否正确的代码去掉,去掉之后比较1000万的数据,时间差距还是很明显的。
写回答
1回答
-
liuyubobobo
2019-08-06
我测试了一下,这里最大的时间差距,应该是因为在不是 isHeapify 的情况下,如果初始是一个空的 MaxHeap,在不断添加元素的情况下,对动态数组的扩容操作会使用大量时间。
所以,如果,我们的 else 中,创建 MaxHeap 的方式是这样:
// 传入数据容量大小,一次性创建足够的空间 maxHeap = new MaxHeap<>(testData.length);
结果应该更合理:)
在我的计算机上,1000万数据,不要后续验证,结果是这样的:)
继续加油!:)
132019-08-10
相似问题
链表实现队列入栈的疑问
回答 1
关于最大最小堆的时间复杂度问题!
回答 1