Помогите, пожалуйста, оптимизировать код!

#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]);
    }
}
→ Ссылка