最小的K个数
注意写法必须先后在前,不然不对。
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
if(k==0) return new ArrayList<Integer>();
quicksort(input,0,input.length-1);
ArrayList<Integer> list=new ArrayList<Integer>();
for (int i=0;i<k;i++){
list.add(input[i]);
}
return list;
}
public void quicksort(int[] nums,int l,int r){
if(l>r) return;
int i=l,j=r;
int pivot=nums[l];
while (i<j){
while (i<j&&nums[j]>=pivot) j--;
while (i<j&&nums[i]<=pivot) i++;
if(i<j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
nums[l]=nums[i];
nums[i]=pivot;
quicksort(nums,l,i-1);
quicksort(nums,i+1,r);
}