当然不会那么猥琐直接用sort搞掉
快速排序—分治法
class Solution {
public:
void q_sort(vector<int>& arr,int l,int r) //天空一声巨响 快速排序闪亮登场!!
{
if(l>=r)
return;
int x=arr[l];
int i=l-1;
int j=r+1;
while(i<j){
do i++; while(arr[i]<x);
do j--; while(arr[j]>x);
if(i<j){
int t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
q_sort(arr,l,j);
q_sort(arr,j+1,r);
}
vector<int> getLeastNumbers(vector<int>& arr, int k) {
int n=arr.size();
q_sort(arr,0,n-1); //快速排序快速排序法
vector<int>a(k,0); //有前k个元素,并且都初始化为0
for(int i=0;i<k;i++){
a[i]=arr[i];
}
return a;
}
};