class Solution{
void heapify(vector<int>& A){
for(int i = A.size()/2; i >= 0;i--)
min_heap(A, i);
}
void min_heap(vector<int> &nums, int k){
int len = nums.size();
while(k < len){
int min_index = k;
if(k*2+1 < len && nums[k*2+1] < nums[min_index])
min_index = k*2+1;
if(k*2+2 < len && nums[k*2+2] < nums[min_index])
min_index = k*2+2;
if(k == min_index)
break;
swap(nums[k], nums[min_index]);
k = min_index;
}
}
};
给定一个整数数组,将其堆化为最小堆数组。
猜你喜欢
转载自blog.csdn.net/sinat_36412790/article/details/81319065
今日推荐
周排行