yxc的思路:
(最小堆)
1.插入一个数 heap[++size]=x,up(size); 每次在末尾插入一个数,然后up
2.求当前集合的最小值 heap[1]
3.删除最小值(删去堆顶) heap[1]=heap[size];size–;down(1);
4.删除任意一个元素 heap[k]=heap[size];size–;down(k);up(k);//因为不想判断,所以down和up都写,但是只会执行一个
5.修改任意一个元素 heap[k]=x;down(k),up(k);