• 1、归并逆序对
#include<iostream>
using namespace std;
const int N=1e5+10;
typedef long long ll;
int a[N],temp[N];
ll ans;
ll msort(int l,int r)
{if(l==r)return 0;int mid=l+r>>1;msort(l,mid),msort(mid+1,r);int k=0,i=l,j=mid+1;while(i<=mid&&j<=r){if(a[i]<=a[j])temp[k++]=a[i++];else{ans+=mid-i+1;temp[k++]=a[j++];}}while(i<=mid)temp[k++]=a[i++];while(j<=r)  temp[k++]=a[j++];for(int i=l,j=0;i<=r;i++,j++) a[i]=temp[j];return ans;
}
int main()
{int n;cin>>n;for(int i=1;i<=n;i++) cin>>a[i];cout<<msort(1,n)<<endl;return 0;
}
  • 2、快排第k个数
#include<iostream>
using namespace std;
const int N=1e5+10;
int a[N];
int quick_sort(int l,int r,int k)
{if(l==r)return a[l];int i=l-1,j=r+1;int mid=a[l+r>>1];while(i<j){do i++;while(a[i]<mid);do j--;while(a[j]>mid);if(i<j)swap(a[i],a[j]);}int s=j-l+1;if(k<=s)quick_sort(l,j,k);else quick_sort(j+1,r,k-s);
}
int main()
{int n,k;cin>>n>>k;for(int i=1;i<=n;i++) cin>>a[i];cout<<quick_sort(1,n,k)<<endl;return 0;
}
  • 3、nth_element()
  • 参数(x,y,z)
  • 代表起始点,归位点,终止点
  • nth_element(a+1,a+k,a+n+1)
  • 这样后输出a[k]就是输出排序后a数组里面的第k个数
  • 210814完结

210814算法日记:归并逆序对板子快排第k个数板子第k个数的stl相关推荐

  1. ACM算法训练【逆序对的数量】

    ACM算法训练[逆序对的数量] 题目说明 数据范围 样例 分析与代码 题目说明 数据范围 样例 分析与代码 ①归并排序基本思想: ②在归并的过程中,逆序对出现的三种情况: a.全部出现在左边的区间 b ...

  2. 算法R2D3-复习快选归并逆序对数量

    第k个数 一遍ac,还是很不错的 n,k = map(int,input().split()) a = list(map(int,input().split()))def quick_sort(a,l ...

  3. -9 逆序输出一个整数的各位数字_【每日算法】基础算法——归并排序[求逆序对的数量](四)(思想很经典)...

    题目内容 给定一个长度为n的整数数列,请你计算数列中的逆序对的数量. 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆 ...

  4. 排序算法整理(冒泡、选择、快排、堆排序、希尔、归并)

    文章目录 前言 插入排序 希尔排序 关键代码如下 归并排序 快速排序 堆排序 前言 大四了开始学了,希望为时不晚,呜呜. 总结数据结构的相关知识,代码会用java实现 其他相关部分: 2-3树.平衡树 ...

  5. 几种常用排序(归并,希尔,快排,堆排.......)

    冒泡排序: 最简单的一种排序,重复的遍历数列,每次比较两个元素,按一定的顺序排列: for(int i=0;i<ength;i++)//length是数组的长度 {for(int j=0;j&l ...

  6. 百度即将上线惊雷算法3.0:灰帽快排技术能否走下神坛

    1月13日消息,近日百度搜索平台官方发布消息,即将上线惊雷算法3.0.此次重点打击的是快排技术,相信对于很多SEO从业者和站长来说,对快排技术都不陌生.很多年前就存在这种灰帽作弊技术,基本原理很简单, ...

  7. 蓝桥杯 ADV168 算法提高 快乐司机(贪心 快排)(java)

    算法提高 快乐司机   时间限制:1.0s   内存限制:256.0MB      问题描述 "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌 ...

  8. 常用排序算法-java实现(插入,快排)

    1.插入排序算法 /** Simple insertion sort.* @param a an array of Comparable items.*/public static void inse ...

  9. 各个排序算法的时间复杂度、稳定性、快排的原理以及图解

    目录 一.数据结构的八大排序算法总结笔记: 1.常见的数据结构排序算法如下图所示: 2.常见数据结构排序算法的时间复杂度.空间复杂度.稳定性介绍如下图所示: 二.排序算法逐一介绍: 1.直接插入排序: ...

最新文章

  1. springboot 集成mybatis时日志输出
  2. C#读取Excel显示到repeater中
  3. struts2访问session的两种方法
  4. linux定时任务crontab
  5. 电信机房服务器维修,数据中心机房,你不可不知的6大服务保障
  6. 第一章 TestNG框架自动化简述
  7. 非静态成员函数的非法调用错误
  8. map怎么转化dto_阿里面试题:为什么Map桶中个数超过8才转为红黑树
  9. [UVa-437] Color Length
  10. @Scheduled定时任务不生效的原因
  11. JAVA多线程→进程与线程、线程周期、实现线程Thread、start()sleep()join()、线程互斥synchronized()锁当前对象this或方法、线程同步wait()notify()
  12. python读取文件路径乱码 linux_Python之pandas读写文件乱码的解决方法
  13. 使用Idea 配置maven
  14. 创建SSM项目框架搭建流程--史上最详细教程
  15. OSN 7500 智能光交换系统是继承了MSTP技术的全部特点
  16. 认知升级 - 第一性原理
  17. 【软件测试】8年资深测试解析,软件测试行业情报,风风雨雨......
  18. Elasticsearch——Bboss
  19. 备份指南——Ghost前的系统配置大全(转)
  20. elo算法c语言,王者荣耀Elo机制?你中招了吗?

热门文章

  1. (整理)HTML字体标记:标题字体,字体大小,物理字体,逻辑字体,字体颜色,客户端字体,字符实体
  2. JS方法参数设置为默认值的几种方式
  3. 2021云南省高考省统测成绩查询,2021云南高三省统测成绩,教你算自己的全省排名和能上的大学...
  4. matlab不显示到小数点后四位,matlab保留四位小数
  5. matlab如何将三维转为二维_matlab 三维矩阵转二维矩阵(转)
  6. 【笔试】备战秋招,每日一题|20230415携程研发岗笔试
  7. 软件开发中的QA主要做什么的
  8. Angr(十)——官方文档(Part1)
  9. linux缓存无法写入,缓存文件写入失败_Linux下搭建网站提示缓存文件写入失败怎么办...
  10. 安装虚拟机 vm15