上滤
小于 1 分钟
上滤操作
用于往堆内插入数据
//nums 待插入的数组
//pos 待插入的下标
//val 待插入的值
void upAdjust(vector<int>& nums, int pos, int val) {
while(pos > 0) { //最多计算到根节点
int parent = (pos - 1) / 2;
if(val > nums[parent]) { //如果本身为大根堆,调整使用>
nums[pos] = nums[parent];
pos = parent;
}
else {
break;
}
}
//把val放到i的位置
nums[pos] = val;
}