首页 > 其他分享 >sort排序

sort排序

时间:2024-10-20 19:17:47浏览次数:8  
标签:sort 中位数 算法 查找 vec 排序

sort是c++标准库中提供的排序算法,即快速排序。

1.需要有序数据

  • 范围查询:如果题目要求对数据进行范围查询(如查找某个范围内的数),预先对数据进行排序可以提高查询效率。
  • 中位数问题:查找数组的中位数等问题,通常需要先将数组排序。

2. 贪心算法

  • 任务调度:在贪心算法中,常常需要先将任务按某种属性(如截止时间、优先级等)排序,然后再进行处理。
  • 活动选择问题:在选择活动(如会议室安排)时,通常需要按结束时间排序,以便选择最多的活动。

3. 动态规划

  • 背包问题:某些背包问题(如按重量排序)可以通过排序来优化处理顺序。

4. 图算法

  • 最小生成树(MST):如 Kruskal 算法需要先对图的边按权重排序,才能有效地构建最小生成树。
  • 最短路径:在某些图算法中,对节点或边进行排序可以优化算法性能。

5. 字符串匹配

  • 后缀数组:在处理字符串匹配问题时,后缀数组是一个重要的数据结构,通常需要对后缀进行排序。

6. 数据统计

  • 中位数和众数:在统计数据的中位数或众数时,排序是常见的预处理步骤。
  • 频率统计:对数据进行排序,再进行频率统计,可以更有效地发现数据的模式。

7. 搜索问题

  • 二分查找:如果题目需要频繁进行查找操作,且数据量大,可以先对数据排序,然后使用二分查找来提高效率。

8. 组合优化问题

  • 排列组合:在处理排列组合问题时,排序可以帮助生成有序的排列或组合,便于后续处理。

默认从小到大 

#include <iostream>
#include <algorithm> //必须包含该头文件
#include <vector>
using namespace std;

void test01()
{
	vector<int> vec = {6, 9, 3, 4, 2, 7, 1, 5, 8};
	sort(vec.begin(), vec.end());   //默认升序
	
}

 从大到小排序

sort(vec.begin(), vec.end(), greater<int>());

也可以自定义函数进行从高到底排序

bool cmp(int a,int b)
{
    return a<b;
}
 
sort(a,a+n,cmp);

标签:sort,中位数,算法,查找,vec,排序
From: https://blog.csdn.net/2301_81188158/article/details/143096981

相关文章

  • 【洛谷 P1116】车厢重组 题解(模拟+冒泡排序)
    车厢重组题目描述在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他......
  • 【洛谷 P1116】车厢重组 题解(模拟+冒泡排序)
    车厢重组题目描述在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他......
  • 八大排序算法
    冒泡排序最简单的排序方法之一,且看其定义。定义:冒泡排序(BubbleSort)是一种简单的排序算法。它重复地遍历待排序的列表,比较每对相邻的项目,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复地进行直到没有再需要交换,也就是说该列表已经排序完成。这个算法的名字由来......
  • DELPHI 隐藏程序窗口,以及TListView控件,点击标题进行排序
    设置视图: 运行效果:    unitHideWindown;interfaceusesWindows,Messages,SysUtils,Classes,Forms,StdCtrls,ActiveX,ComObj,ShellAPI,Tlhelp32,Vcl.Controls,Vcl.ComCtrls,psapi,Vcl.ExtCtrls;typeTForm1=class(TForm)GetWList......
  • 提取并排序数组中的偶数
    题目:提取并排序数组中的偶数题目描述:给定一个整数n和一个包含n个整数的数组,编写一个程序提取数组中的所有偶数,并按升序排序后输出。输入格式:第一行包含一个整数 n (1≤ n ≤100,000),表示数组的元素个数。第二行包含 n 个整数,表示数组中的元素。每个整数的绝对......
  • 奇数偶数分开并排序(冒泡函数)
    voidbubbleSort(intarr[],intn){inti,j;for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(arr[j]>arr[j+1]){//交换arr[j]和arr[j+1]inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}intmain(){int......
  • Deepsort算法详解
    多目标跟踪的主要步骤:获取原视频帧利用目标检测器对视频帧中的目标进行检测将检测到的目标的框中的特征提取出来,该特征包括表观特征(方便特征对比避免IDswitch)和运动特征(运动特征方便卡尔曼滤波对其进行预测)表观特征与运动特征:表观特征:描述目标的外观信息,通常包括颜色、纹......
  • 冒泡排序(Bubble Sort)
    新人博主,创作不易,希望得到各位看官的三连支持!!!1、原理        冒泡排序是一种简单的排序算法,属于交换排序的一种。它通过重复地遍历待排序的数列,比较相邻的元素,如果它们的顺序错误就将它们交换过来。这个过程会重复进行,直到没有需要交换的元素位置,即数列已经排序完......
  • 堆结构和堆排序
     小伙伴们大家晚上好,今天又是双更的一天。现在为大家带来堆的讲解。1.完全二叉树以及堆的含义 首先大家应该明白什么是堆:堆是一种特殊的完全二叉树,又可以分为最大堆和最小堆。我首先展示什么是完全二叉树(以两张图作为例子):   这张图片就展示了完全二叉树。  这......
  • java堆排序的示例代码
    publicclassHeapSort{publicstaticvoidmain(String[]args){int[]arr={12,11,13,5,6,7};System.out.println("Originalarray:");for(intvalue:arr){System.out.print(value+"");......