从1000个数中选择出10个最大的数

我这个是数量小,如果数量大些有什么办法还没想到
	public static Set<Integer> getTop100(int[] inputArray) {
		TreeSet<Integer> top100 = new TreeSet();
		for (int i = 0; i < inputArray.length; i++) {
			if (top100.size() < 10) {
				top100.add(inputArray[i]);
				System.out.println(inputArray[i]+"before1");
			} else if (top100.first() < inputArray[i]) {
				Object obj = top100.first();
				top100.remove(obj);
				top100.add(inputArray[i]);
			}
		}
		return top100;
	}
	public static void main(String[] args) {
		int numberCount = 100;
		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();
		Set<Integer> result = Manager.getTop100(inputArray);		
		System.out.println("Spend time:"
				+ (System.currentTimeMillis() - current));

	}

你可能感兴趣的:(选择)