刷题记录第九十九天-与排序相关的题-第K大的数和逆序对的数量

求第K大的数—利用快速排序的思想

class Solution {
public:int partition(vector<int>& num, int l, int r){swap(num[l],num[l+rand()%(r-l+1)]);int x = num[l];int i=l+1, j=r;while(i<=j){while(i<=r&&num[i]<=x){i++;}while(num[j]>x){j--;}if(i>=j) break;swap(num[i],num[j]);}swap(num[l],num[j]);return j;}int find(vector<int>& num, int k){int l=0,r=num.size()-1;while(l<=r){int pos = partition(num,l,r);if(pos==k-1) return num[pos];else if(pos>k-1){r = pos-1;}else{l = pos+1;}}return -1;}int findKthLargest(vector<int>& nums, int k) {return find(nums,nums.size()-k+1);}
};

求逆序对的数量-归并排序
思路是:一个数组逆序对的数量等于左部分+右部分+横跨中间的逆序对数量

#include<iostream>
using namespace std;int merge_sort(int *num, int *tmp, int l, int r){if(l==r) return 0;int mid = (l+r)/2;int res = merge_sort(num,tmp,l,mid) + merge_sort(num,tmp,mid+1,r);for(int i=l;i<=r;i++) tmp[i]=num[i];int i = l, j = mid+1;for(int k=l;k<=r;k++){if(i==mid+1){num[k]=tmp[j++];}else if(j==r+1){num[k]=tmp[i++];}else if(num[i]>num[j]){num[k]=tmp[j++];res += mid-i+1;}else{num[k]=tmp[i++];}}return res;
}
int main(){int n;scanf("%d",&n);int num[n];int tmp[n];for(int i=0;i<n;i++) scanf("%d",&num[i]);int result = merge_sort(num,tmp,0,n-1);cout<<result;//for(int i=0;i<n;i++) printf("%d ",num[i]);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/841781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot自动化配置原理

Spring Boot 的自动化配置原理基于 EnableAutoConfiguration 注解及其相关机制。以下是其工作原理的详细说明&#xff1a; Spring Boot 自动化配置原理 主要概念和机制&#xff1a; EnableAutoConfiguration 注解&#xff1a; 这个注解告诉 Spring Boot 启动时去自动配置 Spr…

【java程序设计期末复习】chapter7 内部类和异常类

内部类和异常类 内部类 ava支持在一个类中声明另一个类&#xff0c;这样的类称作内部类&#xff0c;而包含内部类的类成为内部类的外嵌类。 注意 &#xff08;1&#xff09;内部类的类体中不可以声明类变量和类方法。 &#xff08;2&#xff09;外嵌类的类体中可以用内部类…

[论文阅读笔记31]Mamba (Selective Structured State Space Model) 及其应用

最近想学一下Mamba模型&#xff0c;奈何看了很多视频还是感觉一知半解&#xff0c;因此做一篇笔记&#xff0c;顺便介绍一下Mamba结构作为CV backbone和时间序列预测领域的应用。 论文1. Mamba: Linear-Time Sequence Modeling with Selective State Spaces 0. Abstract 现有…

VLAN高级特性

1.VLAN聚合 &#xff08;1&#xff09;VLAN聚合产生的技术背景 &#xff08;2&#xff09;VLAN聚合概述 &#xff08;3&#xff09;VLAN聚合的原理 多个Sub-VLAN共享一个网关地址&#xff0c;节约了子网网络地址、子网定向广播地址、子网缺省网关地址&#xff0c;且各Sub-VLAN…

微信小程序--微信开发者工具使用小技巧(3)

一、微信开发者工具使用小技巧 1、快速创建小程序页面 在app.json中的pages配置项&#xff0c;把需要创建的页面填写上去 2、快捷键使用 进入方式 1&#xff1a; 文件–>首选项–> keyboard shortcuts 进入快捷键查看与设置 进入方式 2&#xff1a; 设置–>快捷键…

JVM学习-方法区(元空间)

运行时数据区结构图 从线程共享与否角度来看 栈、堆、方法区的交互关系 方法区 《Java虚拟机规范》中明确说明&#xff1a;“尽管所有的方法区在逻辑上属于堆的一部分&#xff0c;但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩”&#xff0c;但对于HotSpotJVM而…

EXPLAIN之type、Extra

在我们使用explain命令对sql语句进行优化时&#xff0c;有一些参数比较重要但也有点不容易理解。接下来就对他们分别进行介绍。 1. type type表示此次sql语句的访问类型&#xff0c;可以从总体上反应该语句的运行情况。 从最好到最差依次是&#xff1a;system>const>e…

布鲁可冲刺上市:极其依赖第三方,多个授权将到期,朱伟松突击“套现”

“奥特曼”概念股来了。 近日&#xff0c;布鲁可集团有限公司&#xff08;下称“布鲁可”&#xff09;递交招股书&#xff0c;准备在港交所主板上市&#xff0c;高盛和华泰国际为其联席保荐人。据贝多财经了解&#xff0c;布鲁可的经营主体为上海布鲁可科技集团有限公司。 天眼…

轻量级 C Logger

目录 一、描述 二、实现效果 三、使用案例 四、内存检测 一、描述 最近实现一个 WS 服务器&#xff0c;内部需要一个日志打印记录服务器程序的运行过程&#xff0c;故自己实现了一个轻量级的 logger&#xff0c;主要包含如下特征&#xff1a; 可输出 debug、info、warn、er…

历年高校招生计划数据 API 数据接口

历年高校招生计划数据 API 数据接口 基础数据 / 高校招生&#xff0c;各高校历年招生计划数据&#xff0c;高校招生数据 / 历年计划。 1. 产品功能 支持历年高校招生计划数据查询&#xff1b;包含各高校招生计划详细数据&#xff1b;多维度查询条件支持&#xff1b;毫秒级查询…

yolov5_obb

yolov5_obb: 旋转目标检测从数据制作到终端部署全流程教学

安全分析[2]之计算机系统安全分析

文章目录 计算机系统结构计算机系统安全风险软件安全漏洞 计算机系统结构 计算机系统安全风险 计算机硬件安全&#xff1a;因设计不当、器件的质量及使用寿命的限制、外界因素等导致的计算机系统硬件出现故障&#xff0c;进而影响到整个系统的安全。特别是如果是CPU出现安全漏…

【Go专家编程——协程】

1 协程的概念 1.1 基本概念 进程是应用程序的启动实例&#xff0c;每个进程都有独立的内存空间&#xff0c;不同进程通过进程间的通信方式来通信线程从属于进程&#xff0c;每个进程至少包含一个线程&#xff0c;线程是CPU调度的基本单元&#xff0c;多个线程之间可以共享进程…

PCIe总线-事物层之TLP请求和完成报文格式介绍(六)

1.概述 TLP报文按照类型&#xff0c;可以大致分为4中类型&#xff0c;分别是IO请求报文、存储器请求报文、配置请求报文、完成报文和消息请求报文。IO请求报文可分为IO读请求&#xff08;不携带数据&#xff09;和IO写请求&#xff08;携带数据&#xff09;。存储器请求报文可…

架构师系列-定时任务解决方案

定时任务概述 在很多应用中我们都是需要执行一些定时任务的&#xff0c;比如定时发送短信&#xff0c;定时统计数据&#xff0c;在实际使用中我们使用什么定时任务框架来实现我们的业务&#xff0c;定时任务使用中会遇到哪些坑&#xff0c;如何最大化的提高定时任务的性能。 我…

【文末附gpt升级方案】前沿人工智能安全承诺:OpenAI、微软、智谱AI等全球16家公司的共同行动

前沿人工智能安全承诺&#xff1a;OpenAI、微软、智谱AI等全球16家公司的共同行动 一、引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其在全球范围内的应用日益广泛&#xff0c;从智能家居到自动驾驶&#xff0c;从医疗诊断到金融分析&#xff0c;…

C语言——函数指针与指针函数

一、函数指针 1、定义 顾名思义&#xff0c;函数指针就是函数的指针。它是一个指针&#xff0c;属于一个数据类型&#xff0c;其指向一个函数。如定义一个函数&#xff0c;其入口地址就是这个函数的指针&#xff0c;是个常量&#xff0c;可以用该常量给函数指针类型的变量赋值&…

Spark-RDD-依赖关系详解

Spark概述 Spark-RDD概述 Spark-RDD-依赖关系 在Apache Spark中&#xff0c;RDD&#xff08;Resilient Distributed Dataset&#xff09;是一种基本的抽象数据结构&#xff0c;代表了分布式的、不可变的数据集。 RDD之间的依赖关系在Spark中非常重要&#xff0c;因为它们决定了…

汇编语言(一)

寄存器&#xff1a;cpu中可以储存数据的器件&#xff08;AX&#xff0c;BX&#xff09; 汇编语言的组成&#xff1a;1.汇编指令 2.伪指令 3.其他符号 存储器&#xff1a;cpu&#xff0c;传入指令和数据&#xff0c;加以运算。&#xff08;内存&#xff09; 指令和数据&#…

DBAPI怎么进行数据格式转换

DBAPI如何进行数据格式的转换 假设现在有个API&#xff0c;根据学生id查询学生信息&#xff0c;访问API查看数据格式如下 {"data":[{"name":"Michale","phone_number":null,"id":77,"age":55}],"msg"…