首页 > 其他分享 >排序函数

排序函数

时间:2024-07-03 15:21:18浏览次数:11  
标签:std sort 函数 复杂度 list objects 排序

1.std::sort (不稳定排序,时间复杂度为O(n log n)) 

std::vector<int> list;
std::sort(list.begin(),list.end()); // 默认升序 std::less<int>();
std::sort(list.begin(),list.end(),std::greater<int>()); // 降序

auto cmp = [](int x,int y){return x<y;};
std::sort(list.begin(),sort.end(),cmp); // 自定义比较函数

2.std::stable_sort(稳定排序,时间复杂度为O(n log n),排序时有相同的比较值元素,可以保证每次排序结果一致,代价是额外的空间复杂度)

 1 struct Obj
 2 {
 3   int index=0;
 4   std::string name;      
 5 }
 6 
 7 std::vector<Obj> objects;
 8 objects.emplace_back(2,"test2");
 9 objects.emplace_back(2,"test3");
10 objects.emplace_back(3,"test4");
11 
12 std::stable_sort(objects.begin(),objects.end(),[](const auto &obj1,const auto &obj2){return obj1.index < obj2.index;}):

 

3.std::partial_sort(部分排序,时间复杂度为O(n log n),不稳定排序)

标签:std,sort,函数,复杂度,list,objects,排序
From: https://www.cnblogs.com/amandali/p/18281686

相关文章

  • 02-JS函数基础
    01函数中的arguments1.1传多的参数也会存在里面<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><t......
  • laravel 数组元素按中文排序
    1、按英文排序$r=[['color'=>'b','color_zh'=>'波'],['color'=>'c','color_zh'=>'吃'],['color'=>'a','color_zh'=>'啊......
  • 153. 寻找旋转排序数组中的最小值(中等)
    153.寻找旋转排序数组中的最小值1.题目描述2.详细题解3.代码实现3.1Python3.2Java1.题目描述题目中转:153.寻找旋转排序数组中的最小值2.详细题解  如果不考虑O(......
  • strlen/strcpy/strncpy/strcat/strcmp/memset/memcmp不完成实现(部分函数跑过测试集)
    #include<klib.h>#include<klib-macros.h>#include<stdint.h>#if!defined(__ISA_NATIVE__)||defined(__NATIVE_USE_KLIB__)size_tstrlen(constchar*s){//panic("Notimplemented");assert(s!=NULL);size_tl=0;......
  • 常见排序原理及 python 实现
    时间复杂度与空间复杂度常用O(1)或O(n)表示,其中1表示一个单位(最简单的单位,可以是多个或1个,但在时间上总体是较低且连续的),时间通常指的是程序运行时间,空间则是指程序在运行时所占用的内存空间。各个阶段的复杂度可用下面的顺序比较:O(1)<O(logn)<O(n)<O(nlogn)<O(n2).......
  • PHP 函数封装,常用
    PHP封装一个echo函数, 字符串前自动加"\t";字符串结尾自动加.PHP_EOL 制表符://用法echoTab('abcdefg;',2);//默认一个制表符"\t",#tab为缩进制表符数量;functionechoTab($data,$tab=1){$data=str_repeat("\t",$tab).$data.PHP_EOL;echo$data;......
  • 函数模版和类模版
    函数模板函数模板概念函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本函数模板格式.1函数模板格式template<typenameT1,typenameT2,......,typenameTn>返回值类型函数名(参数列表){}template<typenameT>v......
  • 【C++】多态(定义、虚函数、重写、隐藏)
      ......
  • JAVA函数式编程
    函数式编程概念,JAVA八新特性Lambda表达式和流(Stream)的使用。一、基本概念命令式编程:是一种描述计算机所需作出的行为的编程典范。主要思想是关注计算机执行的步骤,计算机则会严格遵循指令。  传统的硬件运行的机器码指令就是以命令式分格编写的。也就是对于需要实现的......
  • 【hash】hash算法、hash函数、哈希表、布隆过滤器、一致性哈希
    哈希函数的基本性质函数定义域是无穷的,值域相对有限(但也很大,比如2的64次方)输入同样样本一定得到同样的输出输入不同样本可能得到相同输出,此时叫哈希碰撞输入大量不同的样本,得到大量输出值,会几乎均匀的分布在整个输出域上布隆过滤器通过几个不同哈希函数计算哈希值,对位......