堆排序求TopK(java)(2)

时间:2025-05-14

建立一个长度为K的堆,求一组数据中最小的K个数

else

{

break;

}

}

h[i] = value;

}

/*

* 将前k个数据建成堆

*/

public void kheap(double data[])

{

if(k>data.length)

{

System.out.println("数组元素个数不足K个");

return ;

}

//将data中的前k个元素建成堆

for(int i=0;i<k;++i)

{

heap[i+1] = data[i];

}

for(int i=k/2;i>0;--i)

{

toheap(i,k,heap);

}

}

/*

* 读入整个数组,求Top K

*/

public void getTopK(double data[])

{

//将前k个数据建堆

kheap(data);

//对K之后的数据依次读入

for(int i=k;i<data.length;++i)

{

getTopKoneByone(data[i]);

}

}

/*

堆排序求TopK(java)(2).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219