堆排序求TopK(java)(2)

时间:2026-01-18   来源:未知    
字号:

建立一个长度为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文档下载到电脑,方便复制、编辑、收藏和打印
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:19 元/月 原价:99元
低至 0.1 元/份 每月下载300
全站内容免费自由复制
VIP包月下载
特价:19 元/月 原价:99元
低至 0.1 元/份 每月下载300
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)