week1-[分支結構]中位數

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;排隊獲取鎖的線程會按照請求獲取鎖時候的順序去獲取…