最小的k个数
最小的K个数
http://www.nowcoder.com/questionTerminal/6a296eb82cf844ca8539b57c23e6e9bf
//只是用了简单快速排序 讲数组进行排序最后输出前k个
import java.util.ArrayList; public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { ArrayList arr = new ArrayList(); if(k>input.length){ return arr; } quickSort(input,0,input.length-1); for(int i =0 ;i<k;i++){ arr.add(input[i]); } return arr ; } void quickSort(int [] arr ,int l,int r){ if(l>r){ return ; } int p = portion(arr,l,r); quickSort(arr,l,p-1); quickSort(arr,p+1,r); } int portion(int [] arr ,int l,int r){ if(l<=r){ int num = arr[l]; int pviot = l; for(int j =l+1;j<=r;j++){ if(arr[j]<num){ int temp = arr[++pviot]; arr[pviot] =arr[j]; arr[j] =temp ; } } int temp = arr[l]; arr[l] = arr[pviot]; arr[pviot] = temp; return pviot; } return 0; } }