剑指Offer--最小的K个数--java

题目描述

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。

解题思路:

先采用冒泡法对数组进行排序,然后遍历输出
冒泡法
剑指Offer--最小的K个数--java

代码如下:

import java.util.*;
public class Solution {
    public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
        ArrayList<Integer> list=new ArrayList<Integer>();
        int n=input.length;
        for(int i=n;i>0;i--){
            for(int j=0;j<i-1;j++){
                if(input[j]>input[j+1]){
                    int temp=input[j+1];
                    input[j+1]=input[j];
                    input[j]=temp;
                }
            }
        }
        if(k>n){
     
            return list;
        }else{
               for(int i=0;i<k;i++){
                list.add(input[i]);
            }
            return list;
        }
    }
}

运行结果:

剑指Offer--最小的K个数--java