從一億條數據中取出top100
import java.util.Random; import java.util.TreeSet;public class Top100 { public static void main(String[] args) { long begin = System.currentTimeMillis(); int[] numarray = new int[100000000]; Random random = new Random(); for (int i = 0; i < numarray.length; ++i) { numarray[i] = random.nextInt(numarray.length); }
long middle = System.currentTimeMillis(); TreeSet<Integer> top = new TreeSet<Integer>(); for (int i = 0; i < numarray.length; ++i) { if (top.size() < 100) { top.add(numarray[i]); continue; } if (numarray[i] > top.first()) { top.pollFirst(); top.add(numarray[i]); } } long end = System.currentTimeMillis(); // System.out.println(top); System.out.printf("排序用時:%d\n總共用時:%d\n", end - middle, end - begin); }
}</pre>
運行時可能內存溢出,可使用下面命令執行:java -Xms128M -Xmx768M Top100
本文由用戶 灬猜想灬 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!