解题思路:我的思路是将数组进行排序,排序后,把前k个数输出就可以了。
public class Demo32数组中第k小个数 {
private static void insertSort(int arr[]){
for(int i = 1;i<arr.length;i++){
int j =i;
int e = arr[i];
for(;j>0 && e<arr[j-1];j--){
arr[j] = arr[j-1];
}
arr[j] = e;
}
}
public static ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
insertSort(input);
for (int i :input) {
System.out.print (i+" ");
}
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0;i<input.length;i++){
if(i+1<=k){
list.add(input[i]);
}
}
return list;
}
public static void main(String[] args) {
int input[] ={4,5,1,6,2,7,3,8};
GetLeastNumbers_Solution(input,4);
}
}