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

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//

include "stdafx.h"

include "stdafx.h"

include

include

include

include

include

include

include

include

include

include<forward_list>

using namespace std;

class Solution {
public:
vector GetLeastNumbers_Solution(vector input, int k) {
sort(input.begin(),input.end());
vector vec;
if (k > input.size()) return vec;
auto it = input.begin();

for (int i = 0; i < k;i++)
{
if (it == input.end()) break;
vec.push_back(*it);
++it;
}
return vec;
}
};

int main()
{

Solution so;
vector input = { 4,5,1,6,2,7,3,8 };
vector result = so.GetLeastNumbers_Solution(input,4);
for (auto it = result.begin(); it != result.end(); ++it)
cout << *it << " ";

cout << endl;
return 0;
}

注意:此处主要考察的是排序,我直接调用系统的sort方法进行排序。
要多看堆排序、快排、冒泡等排序算法及其复杂度

posted @ 2016-10-26 17:33  wdan2016  阅读(2078)  评论(0)    收藏  举报