杭州网络科技网站建设,网站建设的关键,软件开发工程师证书怎么考,网站注销堆的应用
1#xff09;排序 堆排序
选择排序 既可以找到最大的放在最后 也可以找到最小的方最前
但是#xff0c;堆排序不能找最小的放在最前 因为把最小数放在最前#xff0c;会破坏掉堆的原来的顺序#xff0c;除非重新建堆
1#xff0c; 2#xff0c;9#xff0c…堆的应用
1排序 堆排序
选择排序 既可以找到最大的放在最后 也可以找到最小的方最前
但是堆排序不能找最小的放在最前 因为把最小数放在最前会破坏掉堆的原来的顺序除非重新建堆
1 29167151845376313
634518163792715131
1451816379271513 63 再向下调整即可
堆排序 排升序建大堆排降序建小堆原因重新调整回根的成本更小向下调整Ologn建队On伪代码 int array[] int size;堆排序排升序建大堆i0;i的意义是被选出的最大的数的个数for(isize-1){ //一次循环找出一个最大的数放在最后Swap(array[0],array[size-1-i])//向下调整AdjustDown(array,size-1-i,0);}建堆函数 向下调整函数
TopK问题
再海量数据中n100*1000,找最大的k10个数 建小堆