【发布时间】:2021-03-13 15:01:14
【问题描述】:
实施说明:此实施提供 O(log(n)) 时间用于入队和出队方法
offer、poll、remove()和add;remove(Object)和contains(Object)的线性时间 方法;检索方法的恒定时间peek、element和size。
所以,我的问题是,O(log(n)) 时间复杂度坚持 是否可以将PriorityQueues 合并为一个?还是考虑插入 O(nlog(n)) ?如果合并更多堆,这种情况会改变吗?
这些PriorityQueues 代表堆。
类似这样的:
PriortityQueue<Integer> a = new PriorityQueue<>();
... add elements
PriortityQueue<Integer> b = new PriorityQueue<>();
... add elements
PriorityQueue<Integer> merged = new PriorityQueue<>(a.size() + b.size(), a.comparator()); // Assuming a and b have the same Comparator.
merged.addAll(a);
merged.addAll(b);
【问题讨论】:
标签: java time-complexity big-o heap priority-queue