算法1
(堆)
Java 代码
class Solution {
public List<Integer> getLeastNumbers_Solution(int [] input, int k) {
List<Integer> arr=new ArrayList<Integer>();
int len=input.length;
if(k>len)
return arr;
for(int i=0;i<k;i++){
heapsort(input,i,len);
arr.add(input[i]);
}
return arr;
}
void heapsort(int[] input,int i,int len){
for(int j=len-1;j>=i;j--){
int p=(j+i-1)/2;
if(input[p]>input[j]){
int temp=input[p];
input[p]=input[j];
input[j]=temp;
}
}
}
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度分析:blablabla
C++ 代码
blablabla
算法1可以加一些注释吗,小白看不明白,heapSort()方法可否解释下,楼主大人