跳至主要內容

上滤

张威小于 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;
}