Помогите, пожалуйста, оптимизировать код!
#include <iostream>
#include <vector>
using namespace std;
void selection_sort(vector<int>& a)
{
for (int i = 0; i < (int)a.size() - 1; ++i) {
int imax = i; // imin
for (int j = i + 1; j < a.size(); ++j) {
if (a[j] > a[imax]) // <
imax = j;
}
swap(a[i], a[imax]);
}
}
int main() {
int n, k, input;
cin >> n >> k;
vector<int> v(n);
for (int i = 0; i < v.size(); i++)
{
cin >> input;
v[i] = input;
}
selection_sort(v);
cout << v[k-1];
}
Ответы (1 шт):
Автор решения: Виктор Карев
→ Ссылка
Ну, в первую очередь следует избавиться от лишних вызовов функции size();
void selection_sort(vector<int>& a)
{
int s = a.size();
for (int i = 0; i < s - 1; ++i) {
int imax = i; // imin
for (int j = i + 1; j < s; ++j) {
if (a[j] > a[imax]) // <
imax = j;
}
swap(a[i], a[imax]);
}
}