week1-[分支结构]中位数

题目描述

给定 444 个正整数 a,b,c,da,b,c,da,b,c,d,输出它们的中位数,答案四舍五入保留 111 位小数。

输入格式

输入共 111444 个正整数 a,b,c,da,b,c,da,b,c,d

输出格式

输出共 111111 个浮点数表示答案。

样例 #1

样例输入 #1

3 1 2 7

样例输出 #1

2.5

提示

样例解释 111

(2+3)÷2=2.5(2 + 3) \div 2 = 2.5(2+3)÷2=2.5

数据范围

对于所有数据,1≤a,b,c,d≤1001\leq a,b,c,d\leq 1001a,b,c,d100

week1-[分支结构]中位数 题解

1. 阅读题目

我们有 444 个正整数 a,b,c,da,b,c,da,b,c,d,要求输出它们的中位数,并且结果四舍五入保留 111 位小数。

  • 中位数定义:
    • 当数据个数为偶数时,中位数 = 中间两个数的平均值。
    • 本题有 444 个数,所以中位数 = 排序后第 2 和第 3 个数的平均值。

2. 分析问题

  • 步骤
    1. 444 个数存入数组。
    2. 排序。
    3. 取第 2 和第 3 个数的平均值(注意下标)。
    4. 输出保留 1 位小数(四舍五入)。
  • 数据范围很小(1≤a,b,c,d≤1001 \leq a,b,c,d \leq 1001a,b,c,d100),可以直接用排序解决。

3. 解决方案

  • sort 排序数组。
  • 平均值用 double 计算,避免整数除法丢失小数。
  • fixedsetprecision(1) 控制保留 1 位小数。

4. C++ 代码实现

#include <bits/stdc++.h>
using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);vector<int> nums(4);for (int i = 0; i < 4; i++) cin >> nums[i];sort(nums.begin(), nums.end());double median = (nums[1] + nums[2]) / 2.0;cout << fixed << setprecision(1) << median << "\n";return 0;
}

5. 数据测试

样例 1

输入

3 1 2 7

过程

  • 排序后:1 2 3 7
  • 中位数 = (2+3)/2=2.5(2 + 3) / 2 = 2.5(2+3)/2=2.5

输出

2.5

样例 2

输入

10 20 30 40

过程

  • 排序后:10 20 30 40
  • 中位数 = (20+30)/2=25.0(20 + 30) / 2 = 25.0(20+30)/2=25.0

输出

25.0

6. 时间复杂度与空间复杂度

  • 时间复杂度O(4log⁡4)≈O(1)O(4\log 4) \approx O(1)O(4log4)O(1)
  • 空间复杂度O(4)≈O(1)O(4) \approx O(1)O(4)O(1)

7. 优化方案

  • 数据量极小,本题已是最优解。
  • 如果扩展到 NNN 个数且只求中位数,可以用 nth_elementO(N)O(N)O(N) 时间求出中位数,无需完全排序。

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

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

相关文章

[激光原理与应用-259]:理论 - 几何光学 - 平面镜的反射、平面透镜的折射、平面镜的反射成像、平面透镜的成像的规律

一、平面镜的反射规律平面镜的反射遵循镜面反射定律&#xff0c;即光线在光滑表面&#xff08;反射面平整度远大于波长&#xff09;发生反射时&#xff0c;满足以下条件&#xff1a;反射光线、入射光线与法线共面&#xff1a;反射光线、入射光线和法线&#xff08;垂直于反射面…

相机按键功能解析

相机按键功能解析佳能相机按键机身背面机身正面机身顶部机身侧面 佳能相机按键 机身背面取景器目镜&#xff1a;用于拍摄时观察相机形成的图像。实拍显示/视频拍摄按钮&#xff1a;按下即可开始拍摄或录制视频。光圈/曝光补偿键&#xff1a;调整光圈大小和曝光补偿&#xff0c;…

51单片机-驱动LED模块教程

本章思维导图&#xff1a; 51单片机驱动LED灯模块 LED灯元器件简介 LED&#xff08;Light Emitting Diode&#xff0c;发光二极管&#xff09; 是一种固态半导体器件&#xff0c;通过P-N结中电子与空穴复合直接将电能转化为光能。其核心结构由P型半导体&#xff08;空穴主导&a…

Git 完全手册:从入门到团队协作实战(2)

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《C修炼之路》、《Linux修炼&#xff1a;终端之内 洞悉真理…

c语言中堆和栈的区别

1.栈区(stack):由编译器自动分配释放&#xff0c;栈主要用于存储局部变量、函数参数、函数调用和返回信息等。其操作方式类似于数据结构中的栈。 2.堆区(heap):一般由程序员分配释放&#xff0c;若程序员不释放&#xff0c;则可能会引起内存泄漏。注堆和数据结构中的堆栈不一样…

华为实验WLAN 基础配置随练

业务vlan 20 192.168.20.x管理vlan 100 192.168.100.x步骤① 网络互通Core sw:vlan batch 20 100 dhcp enable int vlanif 20IP add 192.168.20.1 24dhcp select interfaceinterface GigabitEthernet0/0/1/2port link-type trunkport trunk pvid vlan 100port trunk allow-pas…

CMake 如何查找 Python2和Python3

问题 在一个CMakeLists.txt文件里面看到了下面的这句话 find_package(Python2 COMPONENTS Interpreter Development NumPy)这个好有趣啊&#xff0c;Python2也是一个C的库吗&#xff0c;也有Python2Config.cmake或者FindPython2.cmake? 回答 find_package(Python2 COMPONENTS …

心灵笔记:刻意练习

心灵笔记&#xff1a;刻意练习提要 所有人都以为“杰出”源于“天赋”&#xff0c;而“天才”却说&#xff1a;我的成就源于“正确的练习”&#xff01; 定义&#xff1a;刻意练习是一种有目的、有方法、能带来能力持续提升的结构化训练方式&#xff0c;它并非简单的重复劳动&a…

langchain入门笔记03:使用fastapi部署本地大模型后端接口,优化局域网内的问答响应速度

文章目录前言一、fastapi的简单入门1&#xff1a;安装必要的包&#xff08;python3.11&#xff09;&#xff1a;2&#xff1a;快速搭建一个fastapi&#xff1a;二、提升问答的响应速度1. fastapi部署后端接口&#xff0c;在局域网内访问的方法2. 局域网内的测试&#xff1a;“未…

【CDA 新一级】学习笔记第1篇:数据分析的时代背景

作者&#xff1a;CDA持证人 张九领我们要学习数据分析&#xff0c;就要从当前时代的数据特点&#xff0c;找到在时代特点下企业需要数据分析的痛点&#xff0c;然后理解数据分析在企业中的作用。当前时代&#xff0c;数据分析的特征是哪些呢&#xff1f;我们用VUCA来概括数据分…

Vite 为什么比 Webpack 快?原理深度分析

Hi&#xff0c;我是布兰妮甜 &#xff01;在现代前端开发中&#xff0c;构建工具的性能直接影响开发体验和生产力。Webpack 作为传统打包工具的代表&#xff0c;长期以来主导着前端构建领域&#xff0c;而 Vite 作为新一代的前端构建工具&#xff0c;凭借其出色的开发服务器启动…

数字电路上的通讯速度是越快越好还是越慢越好?

昨天我突发奇想&#xff0c;修改了一下MCU和INA226以及DAC8551的通讯速率。之前的INA226用的是I2C通讯&#xff0c;之前设置的速率是100Kbps&#xff0c;DAC8551是SPI通讯&#xff0c;速率是10Mbps&#xff0c;昨天修改之前输出位置的测试结果如图&#xff1a;可以看到&#xf…

Google Gemini 的深度研究终于进入 API 阶段

Google Gemini 最强大的功能之一是深度研究&#xff0c;但到目前为止&#xff0c;它一直严格限制在 Gemini 界面上。这种情况可能很快就会改变。 通过 Gemini 中的深度研究&#xff0c;您可以搜索几乎任何内容&#xff0c;包括学者、现有研究论文等。 谷歌将深度研究描述为一…

通过beeware制作安卓apk用于获取cpolar网址

我们都知道&#xff0c;没有付费的cpolar用户&#xff0c;要不时更新cpolar网址。每次都要自己登录去获取远程的cpolar个人网址比较麻烦&#xff0c;好在可以用python去自动获取。这里说的是&#xff0c;比如用手机装termux软件&#xff0c;再在termux中装cpolar&#xff0c;然…

Swift 实战:用链表和哈希表写出高性能的贪吃蛇引擎(LeetCode 353)

文章目录摘要描述解决方案解析问题与解决方案关键细节逐条讲示例与运行结果时间复杂度空间复杂度总结摘要 这题的目标是设计一个“贪吃蛇”核心引擎&#xff1a;给定棋盘大小和一串食物位置&#xff0c;支持不断调用 move(direction) 推进游戏&#xff0c;返回当前分数&#x…

2025-08-15:按对角线进行矩阵排序。用go语言,给你一个 n × n 的整数矩阵,要求返回一个按下面规则调整后的矩阵: - 将每一条与主对角线平行的斜线视为一个序列。对于位于主对角线及其下方的

2025-08-15&#xff1a;按对角线进行矩阵排序。用go语言&#xff0c;给你一个 n n 的整数矩阵&#xff0c;要求返回一个按下面规则调整后的矩阵&#xff1a;将每一条与主对角线平行的斜线视为一个序列。对于位于主对角线及其下方的那些斜线&#xff08;即所在位置的行索引 ≥ …

MySQL相关概念和易错知识点(5)(索引、事务、MVCC)

目录1.索引&#xff08;1&#xff09;局部性原理a.局部性原理在计算机中的地位b.pagec.池化技术&#xff08;Buffer Pool&#xff09;&#xff08;2&#xff09;如何理解索引&#xff08;3&#xff09;索引的原理a.page的构成b.多层目录c.基于B树的索引①B树的特性在索引中的作…

SQLite 子查询

SQLite 子查询 SQLite 是一个轻量级的数据库管理系统&#xff0c;广泛应用于移动设备、嵌入式系统和桌面应用。在处理复杂的查询时&#xff0c;子查询&#xff08;Subquery&#xff09;是SQLite数据库查询语言中的一个强大工具。本文将详细介绍SQLite子查询的概念、用法及其在数…

区块链系统审计方法论:全面指南与Python实践

目录 区块链系统审计方法论:全面指南与Python实践 1. 引言 2. 区块链审计框架 3. 智能合约审计关键技术 3.1 静态代码分析 3.2 符号执行(Symbolic Execution) 4. 共识机制审计 4.1 PoW共识验证 4.2 PBFT共识模拟 5. 数据完整性审计 5.1 Merkle树验证 6. 完整审计系统实现 7.…

分布式锁—Redisson的公平锁

1.Redisson公平锁RedissonFairLock概述 (1)非公平和公平的可重入锁 一.非公平可重入锁 锁被释放后&#xff0c;排队获取锁的线程会重新无序获取锁&#xff0c;没有任何顺序性可言。 二.公平可重入锁 锁被释放后&#xff0c;排队获取锁的线程会按照请求获取锁时候的顺序去获取…