第19课:排序算法大比拼
进度 0/24
⚔️
排序算法大比拼
排序武林大会,看谁的招式最快!
📖知识引入
🐢O(n²)三兄弟
冒泡、选择、插入,写法简单,但数据一大就跑不动
🚀O(n log n)快客
快排、归并、堆排序,大数据量下的救命稻草
🧰sort函数
C++ STL利器,底层是introsort,实战直接放心用
🎛️自定义排序
传一个cmp比较函数,想按什么排就按什么排
💡
信奥实战直接sort(a+1, a+n+1)一把梭,把宝贵时间留给算法思维本身
🔍sort升序与降序
#include <algorithm>
using namespace std;
bool cmp(int a, int b) { return a > b; } // 降序比较器
int main() {
int a[6] = {0, 5, 2, 9, 1, 7}; // 下标 1..5 有效
sort(a + 1, a + 6); // 升序:1 2 5 7 9
sort(a + 1, a + 6, cmp); // 降序:9 7 5 2 1
return 0;
}默认升序,传cmp函数立刻变降序。
🎯小测验
第1题:冒泡排序的平均时间复杂度是?
第2题:下列哪个排序是O(n log n)级别?
第3题:sort函数默认的排序顺序是?
📝本课知识点
- ✓O(n²)简单但慢
- ✓O(n log n)是主力
- ✓实战直接用sort
第19课完成!继续探索下一课吧 🚀
