public int[] getLeastNumbers(Integer[] data, int length , int k){
		if(data == null || length <= 0 || k<=0 || k > k){
			throw new IndexOutOfBoundsException("input error!");
		}
		int[] result = new int[k];
		
		int start = 0 , end = length -1 ;
		int index = s.partition(data, length, start, end);
		
		while(index != k-1){
			if(index > k-1){
				end = index - 1;
				index = s.partition(data, length, start, end);
			}else{
				start = index + 1;
				index = s.partition(data, length, start, end);
			}
		}
		
		for (int i = 0; i < result.length; i++) {
			result[i] = data[i];
		}
		
		return result;
	}