package com.zetyun.test;import java.util.Random;public class Top100 { public static int[] getTop100(int[] inputArray) { int maxValue = Integer.MIN_VALUE; for (int i = 0; i < inputArray.length; i++) { if (maxValue < inputArray[i]) { maxValue = inputArray[i]; } } byte[] bitmap = new byte[maxValue+1]; for (int i = 0; i < inputArray.length; i++) { int value=inputArray[i]; bitmap[value] = 1; } int[] result = new int[100]; int index = 0; for (int i = maxValue; i >= 0 & index < 100; i--) { if (bitmap[i] == 1) { result[index++] = i; } } return result; } public static void main(String[] args) { int numberCount = 100000000; int maxNumber = numberCount; int inputArray[] = new int[numberCount]; Random random = new Random(); for (int i = 0; i < numberCount; i++) { inputArray[i] = Math.abs(random.nextInt(maxNumber)); } System.out.println("Sort begin..."); long current = System.currentTimeMillis(); int[] result = Top100.getTop100(inputArray); System.out.println(System.currentTimeMillis() - current); for (int i = 0; i < result.length; i++) { System.out.print(result[i] + ","); } }}