最小的K个数
题目描述
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
题目解析
题目给出一个整数数组,和需要得到最小k位数,首先我们需要将这个数组排序,然后去前k位的数。再这里我使用的事冒泡排序法:
冒泡排序法的原理就是通过遍历的方法,一趟一趟的遍历,每一趟找到一个当前未排序的数组中最小的数,放在已排序的数组的尾部。
代码
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer> list =new ArrayList<Integer>();
if( input == null || input.length == 0){
return list;
}
if( input.length < k){
return list;
}
//先排序 冒泡排序法
for(int i = 0 ; i < input.length; i++){
for(int j = i+1 ; j< input.length; j++){
if(input[j]< input[i]){
int temp = input[i];
input[i] = input[j];
input[j] = temp;
}
}
}
for(int i = 0; i < k ; i++){
list.add( input[i]);
}
return list;
}
}