跳转至

sort函数

sort() 函数,是 #include <algorithm> 中的函数。

我们用来对数组内的元素进行排序。

从小到大排序

#include <bits/stdc++.h>

using namespace std;

int a[110], n;

int main() {
    cin >> n;
    for (int i = 0; i < n; i++) cin >> a[i];

    sort(a, a + n);

    for (int i = 0; i < n; i++) cout << a[i] << ' ';

    return 0;
}

从大到小排序

自定义一个 cmp 函数,用于确定元素之间的比较方式。

#include <bits/stdc++.h>

using namespace std;

int a[110], n;

bool cmp(int a, int b) {
    return a > b;
}

int main() {
    cin >> n;
    for (int i = 0; i < n; i++) cin >> a[i];

    sort(a, a + n, cmp);

    for (int i = 0; i < n; i++) cout << a[i] << ' ';

    return 0;
}

下标从1开始

上面的示例,数组的下标都是从 0 开始使用,如果下标从 1 开始使用,则是下面这样的写法。

#include <bits/stdc++.h>

using namespace std;

int a[110], n;

int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) cin >> a[i];

    sort(a + 1, a + 1 + n);

    for (int i = 1; i <= n; i++) cout << a[i] << ' ';

    return 0;
}

了解了这些信息后,我们再来看sort函数的参数,

// 对 [0, n-1] 范围排序
// [0, n)左闭右开区间
sort(a, a + n);

// 对 [1, n] 范围排序
// [1, n + 1)左闭右开区间
sort(a + 1, a + 1 + n);