15.7 2011年42题真题讲解

2,4,6,8,11,13,15,17,19,20

可以推出题目的一个隐含条件:偶数个元素的中位数是靠前的那一个

应试技巧:如果实在想不出高效的算法,那么就把笨办法写上,不能空卷

注意读题:是两个等长数组

 奇数个元素的时候,只能删除中位数之前的

当a=b时,中位数=a=b

A:2,6,8,10,11

B:3,5,8,12,13

排序:2,3,5,6,8,8,10,11,12,13

当a<b时,a=8,b=10

假设A,B如下

A:2,6,8,10,11

B:3,5,10,13,15

A删除中位数左边的,B删除中位数右边的

A:8,10,11

B:3,5,10

此时a=10,b=5,a>b,A删除中位数右边的,B删除中位数左边的

A:8,10

B:5,10

此时元素A和B的元素个数都为偶数个,则删除大的那个中位数右边的元素,删除小的那个中位数及它前面的元素,a=8,b=5,则A删掉10,B删掉它自己的中位数b=5

A:8

B:10

最后取小的那个数即可,即中位数=8,下面可以验证出是正确的

2,3,5,6,8,10,10,11,13,15

 当a>b时类似推理即可

 代码

#include <stdio.h>
int MidSearch(int A[],int B[],int n)
{int s1,s2,d1,d2,m1,m2;s1=s2=0;d1=d2=n-1;while(s1!=d1 && s2!=d2){m1 = (s1 + d1)/2;m2 = (s2 + d2)/2;if(A[m1]==A[m2]){return A[m1];//满足条件:两个数组的中位数相等}if(A[m1]<A[m2]){//满足条件:a<bif((s1+s2)%2==0){ //若元素个数为奇数,这里注意数组下标从0开始s1=m1;	//舍弃 A 中间点以前的部分且保留中间点d2=m2;	//舍弃 B 中间点以后的部分且保留中间点}else{		//元素个数为偶数s1=m1+1;//舍弃 A 中间点及中间点以前部分d2=m2;	//舍弃 B 中间点以后部分且保留中间点}}else{	//满足条件:a>bif((s1+s2)%2==0){ //若元素个数为奇数d1=m1;	//舍弃 A 中间点以后的部分且保留中间点s2=m2;	//舍弃 B 中间点以前的部分且保留中间点}else{ //元素个数为偶数d1=m1;	//舍弃 A 中间点以后部分且保留中间点s2=m2+1;//舍弃 B 中间点及中间点以前部分}}}return A[s1]<B[s2]?A[s1]:B[s2];
}
int main()
{int A[] = {2,6,8,10,11};int B[] = {3,5,8,12,13};int mid = MidSearch(A,B,5);printf("mid = %d\n",mid);return 0;
}
mid = 8

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

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

相关文章

基于springboot+vue+Mysql的房产销售平台

开发语言&#xff1a;Java框架&#xff1a;springcloudJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a…

【详细讲解CentOS常用的命令】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

SQLite FTS5 扩展(三十)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite的知名用户(二十九) 下一篇&#xff1a;SQLite—系列文章目录 1. FTS5概述 FTS5 是一个 SQLite 虚拟表模块&#xff0c;它为数据库应用程序提供全文搜索功能。在最基本的形式中&#xff0c; 全文搜索引擎允许用户有…

Dinov2 + Faiss 图片检索

MetaAI 通过开源 DINOv2&#xff0c;在计算机视觉领域取得了一个显着的里程碑&#xff0c;这是一个在包含1.42 亿张图像的令人印象深刻的数据集上训练的模型。产生适用于图像级视觉任务&#xff08;图像分类、实例检索、视频理解&#xff09;以及像素级视觉任务&#xff08;深度…

【leetcode面试经典150题】57. 环形链表(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

vivado 使用 JTAG-to-AXI Master 调试核进行硬件系统通信

使用 JTAG-to-AXI Master 调试核进行硬件系统通信 JTAG-to-AXI Master 调试核为可自定义核 &#xff0c; 可在运行时生成 AXI 传输事务并驱动 FPGA 内部的 AXI 信号。该核支持所 有存储器映射型 AXI 接口和 AXI4-Lite 接口 &#xff0c; 并且可支持位宽为 32 或 64 …

免费的数据恢复软件有哪些?推荐10款免费的数据恢复软件!

通过使用功能强大的免费和最好的数据恢复软件&#xff0c;您可以取消删除重要文件和文档。丢失文件是每个人在许多情况下面临的常见问题&#xff0c;这些数据恢复程序可以充当完美的救星。 我们编制了 2024年的最佳软件列表。这些工具易于使用&#xff0c;您可以通过如何在 PC…

Spring Boot 目前还是最先进的吗?

当谈到现代Java开发框架时&#xff0c;Spring Boot一直处于领先地位。它目前不仅是最先进的&#xff0c;而且在Java生态系统中拥有着巨大的影响力。 1. 什么是Spring Boot&#xff1f; Spring Boot是由Spring团队开发的开源框架&#xff0c;旨在简化基于Spring的应用程序的开…

接收区块链的CCF会议--ICSOC 2024 截止7.24

ICSOC是CCF B类会议&#xff08;软件工程/系统软件/程序设计语言&#xff09; 2023年长文短文录用率22% Focus Area 4: Emerging Technologies Quantum Service Computing Digital Twins 3D Printing/additive Manufacturing Techniques Blockchain Robotic Process Autom…

N元语言模型

第1关&#xff1a;预测句子概率 任务描述 本关任务&#xff1a;利用二元语言模型计算句子的概率 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.条件概率计算方式。 2.二元语言模型相关知识。 条件概率计算公式 条件概率是指事件A在事件B发生的条件下发…

【MySQL探索之旅】多表查询

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

【数学】推荐一种用尺规绘制正五边形,简单而又精确的作法

【说明】 正五边形的尺规作图方法很多&#xff0c;但大多比较繁琐&#xff0c;下面介绍一种作法&#xff0c;这种方法步骤少&#xff0c;简便易行。 【具体步骤】 1.作相互垂直的两条直线&#xff0c;交点为O&#xff1b; 2.以O为圆心作圆&#xff0c;交横线与AB两点&#…

风速Weibull分布和光伏Beta分布的参数拟合方法(含matlab算例)

在风光场景生成、随机优化调度等研究中&#xff0c;常常假设风速服从Weibull分布&#xff0c;太阳辐照度服从Beta分布。那我们如何得到两个分布的参数呢&#xff1f;文本首先介绍了风速Weibull分布和辐照度Beta分布的基本概率模型及其性性质&#xff0c;之后以MATLAB代码为例阐…

读所罗门的密码笔记21_读后总结与感想兼导读

1. 基本信息 所罗门的密码&#xff1a;AI时代的价值、权力与信任 Solomons Code 奥拉夫格罗思 马克尼兹伯格 著 中信出版社,2022年5月出版 1.1. 读薄率 书籍总字数257千字&#xff0c;笔记总字数37780字。 读薄率37780257000≈14.7% 1.2. 读厚方向 千脑智能 脑机穿越 …

基于SpringBoot的“校园新闻网站”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“校园新闻网站”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 系统功能界面图 用户登录 校园新…

揭秘!回归测试覆盖率究竟是什么?

回归测试覆盖率是软件测试中的一个重要概念&#xff0c;它衡量的是回归测试过程中&#xff0c;能够覆盖到旧代码的比例。在软件开发的生命周期中&#xff0c;每当有新的代码提交或是修改后&#xff0c;都需要进行回归测试以确保新代码不会对原有的功能产生负面影响。 1.什么是…

从入门到实践,详解 Web 爬虫技术(IP池免费送)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

NLP vs. LLMs: 理解它们之间的区别

作者&#xff1a;Elastic Platform Team 随着人工智能持续发展并在无数行业解决问题&#xff0c;技术的一个关键部分是能够无缝地桥接人类语言和机器理解之间的差距。这就是自然语言处理&#xff08;NLP&#xff09;和大型语言模型&#xff08;LLMs&#xff09;的用武之地。它们…

source map 开发优化工具

什么是 Source map 简单来说 Source map 就是一个存储信息的文件&#xff0c;里面储存着位置信息。 Source map 英文释义&#xff1a;源程序映射。 位置信息&#xff1a;转换后的代码 对应的 转换前的代码 位置映射关系。 有了 Source map&#xff0c;就算线上运行的是转换…

电脑技巧:如何把Edge浏览器扩展程序打包安装到其他浏览器

目录 1、进入浏览器扩展界面 2、找到Edge浏览器扩展插件的路径 3、找到需要扩展的插件ID 4、打开浏览器扩展插件目录 5、进入打包扩展界面 6、 安装到其他浏览器 大家日常使用浏览器的时候通常会安装很多浏览器插件&#xff0c;从而大大提升我们的办公效率&#xff0c;有…