🐵指尖猴全新升级
第19课:排序算法大比拼
⚔️

排序算法大比拼

排序武林大会,看谁的招式最快!

📖知识引入

🐢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课完成!继续探索下一课吧 🚀