[代码] [Java]代码 package com.tanghd;
import java.util.Random;
/**  
*  运用小顶堆求解  
*  AMD 4400 ,Win7 64 ,4G RAM,JDK1.6_update24  
*  求1亿随机数TopN,耗时1.4S  
*/  
public class TopN {
	private int[]  http://www.fpjinan.com/linked/20130224.do; arr=null;
	private int top;
	private int setCount=0;
	private Random random;
	public TopN(){
		this(100);
	}
	
	public TopN(int top){
		this.top =top;
		init();
	}
	
	private void init(){
		arr = new int[top];
		random = new Random();
		for(int i=0;i=top;
	}
	
	public int getNextInt(){
		int i = this.random.nextInt();
		return i;
	}
	
	public void heap(){
		int length =arr.length;
		int t= (length-1)>>1;
		for(int i=t;i>=0;i--){
			minHeapify(arr,i,length);
		}
	}
	
	private void minHeapify(int[] array,int i,int size){
		int l = ((i<<1) 1);
		int r = l 1;
		int min = i;
		if(l