标签:完成 dex EAP obj 小顶堆 ace 引用 破坏 ade
操作 | 说明 |
---|---|
addElement | 将给定元素添加到该堆中 |
removeMin | 删除堆得最小元素 |
findMin | 返回一个指向堆中最小元素的引用 |
addElement方法将给定元素添加到堆中的适当位置中,且维持该堆的完全性属性和有序属性;插入位置要么在h层左边的下一个位置,要么是h+1层左边的第一个位置
···
public void addElement(T obj)
{
if (count == tree.length)
expandCapacity();
tree[count] = obj;
count++;
modCount++;
if (count > 1)
heapifyAdd();
}
···
removeMin方法将删除最小堆中的最小元素并返回它,由于最小元素在最小堆的根处,所以要用堆中的另一个元素代替它为维持该树的完全性,只有一个能替换的合法元素,且它是存储在树中最末一片叶子上的元素。最末一片叶子中的元素被移到了根处,必须对该堆进行重排序以维持排序属性
···
public T removeMin() throws EmptyCollectionException
{
if (isEmpty())
throw new EmptyCollectionException("ArrayHeap");
T minElement = tree[0];
tree[0] = tree[count-1];
heapifyRemove();
count--;
modCount--;
return minElement;
}链表和数组实现的addElement和removeMin操作时间复杂度为O(log n)
无
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/4 | 20/20 | |
第二周 | 328/328 | 1/5 | 20/40 | |
第三周 | 1597/ 1925 | 1/4 | 20/60 | |
第四周 | 1153/3850 | 1/5 | 20/80 | |
第五周 | 1583/5433 | 1/6 | 20/100 | |
第六周 | 1515/6948 | 1/7 | 20/120 | |
第七周 | 1145/8093 | 1/8 | 20/140 | |
第八周 | 1665/9758 | 1/9 | 20/160 |
# 20172320 2018-2019-1 《Java程序设计》第八周学习总结
标签:完成 dex EAP obj 小顶堆 ace 引用 破坏 ade
原文地址:https://www.cnblogs.com/garolwz/p/9925570.html