210814算法日记:归并逆序对板子快排第k个数板子第k个数的stl
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相关推荐
- ACM算法训练【逆序对的数量】
ACM算法训练[逆序对的数量] 题目说明 数据范围 样例 分析与代码 题目说明 数据范围 样例 分析与代码 ①归并排序基本思想: ②在归并的过程中,逆序对出现的三种情况: a.全部出现在左边的区间 b ...
- 算法R2D3-复习快选归并逆序对数量
第k个数 一遍ac,还是很不错的 n,k = map(int,input().split()) a = list(map(int,input().split()))def quick_sort(a,l ...
- -9 逆序输出一个整数的各位数字_【每日算法】基础算法——归并排序[求逆序对的数量](四)(思想很经典)...
题目内容 给定一个长度为n的整数数列,请你计算数列中的逆序对的数量. 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆 ...
- 排序算法整理(冒泡、选择、快排、堆排序、希尔、归并)
文章目录 前言 插入排序 希尔排序 关键代码如下 归并排序 快速排序 堆排序 前言 大四了开始学了,希望为时不晚,呜呜. 总结数据结构的相关知识,代码会用java实现 其他相关部分: 2-3树.平衡树 ...
- 几种常用排序(归并,希尔,快排,堆排.......)
冒泡排序: 最简单的一种排序,重复的遍历数列,每次比较两个元素,按一定的顺序排列: for(int i=0;i<ength;i++)//length是数组的长度 {for(int j=0;j&l ...
- 百度即将上线惊雷算法3.0:灰帽快排技术能否走下神坛
1月13日消息,近日百度搜索平台官方发布消息,即将上线惊雷算法3.0.此次重点打击的是快排技术,相信对于很多SEO从业者和站长来说,对快排技术都不陌生.很多年前就存在这种灰帽作弊技术,基本原理很简单, ...
- 蓝桥杯 ADV168 算法提高 快乐司机(贪心 快排)(java)
算法提高 快乐司机 时间限制:1.0s 内存限制:256.0MB 问题描述 "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌 ...
- 常用排序算法-java实现(插入,快排)
1.插入排序算法 /** Simple insertion sort.* @param a an array of Comparable items.*/public static void inse ...
- 各个排序算法的时间复杂度、稳定性、快排的原理以及图解
目录 一.数据结构的八大排序算法总结笔记: 1.常见的数据结构排序算法如下图所示: 2.常见数据结构排序算法的时间复杂度.空间复杂度.稳定性介绍如下图所示: 二.排序算法逐一介绍: 1.直接插入排序: ...
最新文章
- springboot 集成mybatis时日志输出
- C#读取Excel显示到repeater中
- struts2访问session的两种方法
- linux定时任务crontab
- 电信机房服务器维修,数据中心机房,你不可不知的6大服务保障
- 第一章 TestNG框架自动化简述
- 非静态成员函数的非法调用错误
- map怎么转化dto_阿里面试题:为什么Map桶中个数超过8才转为红黑树
- [UVa-437] Color Length
- @Scheduled定时任务不生效的原因
- JAVA多线程→进程与线程、线程周期、实现线程Thread、start()sleep()join()、线程互斥synchronized()锁当前对象this或方法、线程同步wait()notify()
- python读取文件路径乱码 linux_Python之pandas读写文件乱码的解决方法
- 使用Idea 配置maven
- 创建SSM项目框架搭建流程--史上最详细教程
- OSN 7500 智能光交换系统是继承了MSTP技术的全部特点
- 认知升级 - 第一性原理
- 【软件测试】8年资深测试解析,软件测试行业情报,风风雨雨......
- Elasticsearch——Bboss
- 备份指南——Ghost前的系统配置大全(转)
- elo算法c语言,王者荣耀Elo机制?你中招了吗?
热门文章
- (整理)HTML字体标记:标题字体,字体大小,物理字体,逻辑字体,字体颜色,客户端字体,字符实体
- JS方法参数设置为默认值的几种方式
- 2021云南省高考省统测成绩查询,2021云南高三省统测成绩,教你算自己的全省排名和能上的大学...
- matlab不显示到小数点后四位,matlab保留四位小数
- matlab如何将三维转为二维_matlab 三维矩阵转二维矩阵(转)
- 【笔试】备战秋招,每日一题|20230415携程研发岗笔试
- 软件开发中的QA主要做什么的
- Angr(十)——官方文档(Part1)
- linux缓存无法写入,缓存文件写入失败_Linux下搭建网站提示缓存文件写入失败怎么办...
- 安装虚拟机 vm15