题解 | #最小的K个数#
最小的K个数
http://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf
不让我用Arrays.sort我就用快排
import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
if(input.length>1){
int left = 0;
int right = input.length-1;
QuickSort(input,left,right);
}
// Arrays.sort(input);
ArrayList<Integer> ans = new ArrayList<Integer>();
for(int i = 0; i < k; i++){
ans.add(input[i]);
}
return ans;
}
public void QuickSort(int[] arr,int left,int right){
if(left>right){
return;
}
int base = arr[left];
int i = left;
int j = right;
while(i<j){
while(i<j && arr[j]>=base){
j--;
}
while(i<j && arr[i]<=base){
i++;
}
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
arr[left] = arr[i];
arr[i] = base;
QuickSort(arr,left,i-1);
QuickSort(arr,i+1,right);
}
}

