堆排序求TopK(java)(3)

时间:2025-05-14

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

* 依次读入数据,求Top K

*/

public void getTopKoneByone(double data)

{

//只有在输入数据比堆顶元素小时才更新heap if(data<heap[1])

{

heap[1] = data;

toheap(1,k,heap);

}

}

public static void main(String args[])

{

//double[] data = {2,10,5,7,3,1,7,8};

double data[] = new double[100000];

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

{

data[i] = Math.random()*100000;

}

topheap th = new topheap(10,data.length);

th.getTopK(data);

for(int i=1;i<=th.k;++i)

{

System.out.print(th.heap[i]+" ");

}

System.out.println();

/*//冒泡排序求Top K,可以比较一下

for(int i=data.length-1;i>0;--i)

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

{

if(data[j]>data[j+1])

{

double t = data[j];

data[j] = data[j+1];

data[j+1] = t;

}

}

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

System.out.println(data[i]);

*/

}

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

精彩图片

热门精选

大家正在看

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

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

支付方式:

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

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