STL——排序

sort

原型:

sort(首元素地址,尾元素地址的下一个地址,比较函数)
注:

  1. cmp缺省时默认升序排序
  2. 非稳定排序(stl有扩展的稳定排序函数)
  3. sort并不是简单的快速排序,它对普通的快速排序进行了优化,此外,它还结合了插入排序和推排序。系统会根据你的数据形式和数据量自动选择合适的排序方法,这并不是说它每次排序只选择一种方法,它是在一次完整排序中不同的情况选用不同方法,比如给一个数据量较大的数组排序,开始采用快速排序,分段递归,分段之后每一段的数据量达到一个较小值后它就不继续往下递归,而是选择插入排序,如果递归的太深,他会选择推排序。

关于比较函数cmp

bool cmp(int a,int b ){
    return a>b;   //如果a>b,则把a放在b前面
}

结构体的二级排序(首先按x升序排序,若x相等则按y降序排序)

struct node{
int x,y;
}
bool cpm(node a,node b){
if(node.x!=node.y) return a.x>b.x;
else return a.y<b.y;
}
posted @   Ivan_Luo  阅读(327)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示