第 135 课
sort
🟢 入门 约 5 分钟
一句话理解
sort 把一段区间排成升序。
为什么要学
竞赛第一排序工具,通常快排+插排+堆排的混合实现。
讲解
#include 。sort(a, a+n) 或 sort(v.begin(), v.end())。
复杂度 O(n log n)。自定义比较见 cmp 那课。不稳定。
例子
int a[4] = {3, 1, 2, 1};
sort(a, a + 4);
for (int i = 0; i < 4; i++) cout << a[i];
输出:
1123
变成非降序。
常见错误
- sort(a+1, a+n) 却 n 是最后一个下标,右开区间写错。
- 对 string 的每个字符 sort 后以为还是原来的词集。
练习 做完再看下一课
对数组 a[0..n-1] 排序常写 sort(a, a + ____)
右开区间。
在线练习 C++ 在浏览器里编译,代码不会上传 已通过
Ctrl / ⌘ + Enter 运行 · Tab 缩进
隐藏测试点只是界面不展示数据。题目 JSON 会下发到浏览器,可在开发者工具里看到,只适合自学,不是正式比赛评测。
进度保存在本机浏览器里。
左右方向键也可翻课