STL下<algorithm>下的sort函数
定义:
sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为nlog2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include<algorithm>的c++标准库中。
语法:
sort(start,end,cmp)
时间复杂度:
时间复杂度为nlog2(n),执行效率较高。
功能:
sort类函数总结:
| 函数名 | 功能描述 |
| sort | 对给定区间所有元素进行排序 |
| stable_sort | 对给定区间所有元素进行稳定排序 |
| partial_sort | 对给定区间所有元素部分排序 |
| partial_sort_copy | 对给定区间复制并排序 |
| nth_element | 找出给定区间的某个位置对应的元素 |
| is_sorted | 判断一个区间是否已经排好序 |
| partition | 使得符合某个条件的元素放在前面 |
| stable_partition | 相对稳定的使得符合某个条件的元素放在前面 |
常用的cmp函数:
(1)对一组数据排序,使得数据从大到小
我们知道sort函数默认是从小到大排序的,所以我们需要定义一个cmp函数。
模板:
bool cmp(int a , int b)
{
return a>b;
}
例子:对n组数据从大到小进行排列
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int n;
cin>>n;
int a[n];
for(int i=;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n,cmp);
for(int i=;i<n;i++)
{
cout<<a[i]<<" ";
}
}
(2)给出几组数据,使得排序得到一个最小(最大)的数字(拼数)
模板:
bool cmp(string a,string b)
{
return a+b<b+a; //从小到大排列
} bool cmp(string a,string b)
{
return a+b>b+a; //从大到小排列
}
例子:对n做数据进行排列,使得组成的数据最小
#include <bits/stdc++.h>
using namespace std;
bool cmp(string a,string b)
{
return a+b<b+a;
}
int main()
{
int n;
cin>>n;
string a[];
for(int i=;i<n;i++)
cin>>a[i];
sort(a,a+n,cmp);
for(int i=;i<n;i++)
cout<<a[i];
}
例题:
https://ac.nowcoder.com/acm/problem/16783
STL下<algorithm>下的sort函数的更多相关文章
- STL下<algorithm>下的reverse函数
定义: reverse用于C++中,对给定区间所有元素进行排序,是一种反向函数,不具备排序功能.sort函数包含在头文件为#include<algorithm>的C++标准库中. 语法: ...
- C++ algorithm 里的sort函数应用
MSDN中的定义: template<class RanIt> void sort(RanIt first, RanIt last); //--> 1)template< ...
- <algorithm>里的sort函数对结构体排序
题目描述 每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签到.签离记录,请根据记录找出当天开门和关门的人. 输入描述: 每天的记录在第一行给出记录的条目数M (M &g ...
- FCL源码中数组类型的学习及排序函数Sort函数的分析
Array 是所有数组的基类ArrayList 解决了所有Array 类的缺点 能动态扩容, 但是类型不安全的,而是会有装箱与拆箱的性能开销List<T> 则是解决了ArrayLis ...
- sort函数_C++
C++的STL库里有一个 sort 函数,它就是随机化快速排序,速度比快速排序还快,因为它克服了逆序时被卡成O(n2)的情况 想要使用 sort 首先要在头文件里申明 #include<algo ...
- algorithm下的常用函数
algorithm下的常用函数 max(),min(),abs() max(x,y)返回x和y中最小的数字 min(x,y)返回x和y中最大的数字 abs(x)返回x的绝对值,注意x应当是整数,如果是 ...
- python下使用sort()函数对目录下文件名进行多条件排序
目录 1.基础函数 2.例子解析 参考 1.基础函数 a.sort()函数 sort()函数的作用是对列表内容进行正向排序,直接在原列表进行修改,返回的是修改后的列表. lists =[1, 5, 1 ...
- STL sort 函数实现详解
作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...
- STL sort()函数
C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点.STL 排序算法同样需要保持高效.因此,对于不同的需求,STL提供的不同的函数,不同的函数,实现的算法又不尽相同 ...
随机推荐
- split(" {1,}") 含义
将字符串按照括号内的内容分割成字符数组 这里括号内是正则表达式,X{m,n}代表X至少重复m次,至多重复n次 这里x为空格,至少重复1次,就是将字符串以一个或多个空格分割 如"1 2 ab ...
- TensorFlow保存、加载模型参数 | 原理描述及踩坑经验总结
写在前面 我之前使用的LSTM计算单元是根据其前向传播的计算公式手动实现的,这两天想要和TensorFlow自带的tf.nn.rnn_cell.BasicLSTMCell()比较一下,看看哪个训练速度 ...
- @SessionAttributes 的使用
@SessionAttributes 注解只用作用在 类 上,作用是将指定的 Model 的键值对保存在 session 中.可以让其他请求共用 session 中的键值对. 指定保存的属性名 作用是 ...
- srt字幕翻译
需要把字幕名改成i.txt 有有道和谷歌 代码: #Author:Chenglong Qian #Copyright :Chenglong Qian import json import reques ...
- JSP中引用CSS样式文件却无法显示的问题解决方案
你也遇到过这种问题吗,CSS写好了,JSP写好了,在JSP中调用CSS文件,路径检查后也正确,但是无法显示渲染后的页面 原因:罪魁祸首就是过滤器响应数据的时候,响应头设置为了“text/html”,但 ...
- NER命名实体识别,实体级level的评估,精确率、召回率和F1值
pre = "0 0 B_SONG I_SONG I_SONG 0 B_SONG I_SONG I_SONG 0 0 B_SINGER I_SINGER I_SINGER 0 O O O B ...
- SVM之不一样的视角
在上一篇学习SVM中 从最大间隔角度出发,详细学习了如何用拉格朗日乘数法求解约束问题,一步步构建SVM的目标函数,这次尝试从另一个角度学习SVM. 回顾监督学习要素 数据:(\(x_i,y_i\)) ...
- Test Test...
标题: Test(一级标题) Test(二级标题) Test(三级标题) 列表: test(列表) Alpha Beta Gamma test 2 Delte Epsilon 链接: 点兔成金斐波那契 ...
- Python(3)
使用除法来缩减数字,使用余数法来计算个数. class Solution: def hammingWeight(self, n: int) -> int: count = 0 while Tru ...
- 2019-2020-1 20199328《Linux内核原理与分析》第三周作业
加载内核 这里可以看出有些东西隔一段时间就会打印出来 查看mymain.c 开头的一些语句不再描述 每10000次循环打印一次 这里还是针对的mymain.c文件,这里我们可以根据自己的计算机对频率进 ...