最小堆 PriorityQueue 实现
public static void main(String[] args) {
long l = System.currentTimeMillis();
int num = 100000000;
PriorityQueue<Integer> priorityQueue = new PriorityQueue();
List<Integer> list = new ArrayList<>(num);
for (int i = 0; i < num; i++) {
list.add(i);
}
Collections.shuffle(list);
for (int i = 0; i < num; i++) {
if(i < 100){
priorityQueue.add(list.get(i));
}else{
Integer peek = priorityQueue.peek();
Integer integer = list.get(i);
if (integer < peek) {
continue;
}
priorityQueue.poll();
priorityQueue.add(integer);
}
}
for (int i = 0; i < 100; i++) {
System.out.println(priorityQueue.poll());
}
System.out.println("用时:"+((System.currentTimeMillis()-l)/1000)+"秒");
}
