AcWing 838:堆排序 ← 數組模擬

【題目來源】
https://www.acwing.com/problem/content/840/

【題目描述】
輸入一個長度為 n 的整數數列,
從小到大輸出前 m 小的數。

【輸入格式】
第一行包含整數 n 和 m。
第二行包含 n 個整數,表示整數數列。

【輸出格式】
共一行,包含 m 個整數,表示整數數列中前 m 小的數。

【數據范圍】
1≤m≤n≤
10^5
1≤數列中元素≤
10^9

【輸入樣例】
5 3
4 5 1 3 2

【輸出樣例】
1 2 3

【算法分析】
● 堆是一棵完全二叉樹。堆可以用一個一維數組(建議下標從 1 開始)進行模擬。
● 堆的數組模擬實現,參見:https://blog.csdn.net/hnjzsyjyj/article/details/146358448

【算法代碼:
堆排序

#include<bits/stdc++.h>
using namespace std;const int maxn=1e5+5;
int h[maxn];
int tot;
int n,m;void down(int u) {int t=u;if(u*2<=tot && h[u*2]<h[t]) t=u*2;if(u*2+1<=tot && h[u*2+1]<h[t]) t=u*2+1;if(u!=t) {swap(h[u],h[t]);down(t);}
}int main() {cin>>n>>m;tot=n;for(int i=1; i<=n; i++) cin>>h[i];for(int i=n/2; i>=1; i--) down(i);while(m--) {cout<<h[1]<<" ";h[1]=h[tot--];down(1);}return 0;
}/*
in:
5 3
4 5 1 3 2out:
1 2 3
*/


【算法代碼:sort

#include <bits/stdc++.h>
using namespace std;const int maxn=1e5+5;
int a[maxn];int main() {int n,m;cin>>n>>m;for(int i=1; i<=n; i++) cin>>a[i];sort(a+1,a+1+n);//unique(a+1,a+1+n);for(int i=1; i<=m; i++) cout<<a[i]<<" ";return 0;
}/*
in:
5 3
4 5 1 3 2out:
1 2 3
*/




【參考文獻】
https://blog.csdn.net/hnjzsyjyj/article/details/146331059
https://blog.csdn.net/hnjzsyjyj/article/details/146358448
https://www.acwing.com/solution/content/6362/
https://www.acwing.com/solution/content/5541/





?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72822.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72822.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72822.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Microchip AN1477中關于LLC數字補償器的疑問

最近在學習Microchip的AN1477關于LLC的功率級傳遞函數推導及數字補償器設計&#xff0c;對其中的2P2Z數字補償器的系數有一些困惑。我在MATLAB中運行了源程序提供的VMC_LLC.m文件&#xff0c;發現有些地方和AN1477中的結果不一致。現在把相關有疑問的地方列舉出來&#xff0c;也…

【原創】使用ElasticSearch存儲向量實現大模型RAG

一、概述 檢索增強生成&#xff08;Retrieval-Augmented Generation&#xff0c;RAG&#xff09;已成為大型語言模型&#xff08;LLM&#xff09;應用的重要架構&#xff0c;通過結合外部知識庫來增強模型的回答能力&#xff0c;特別是在處理專業領域知識、最新信息或企業私有數…

分享下web3j 常見用法

轉賬 fun sendEthTransaction(privateKey: String,toAddress: String,amount: BigDecimal) {//chainIdval chainId:Long 1//url 可以從https://chainlist.org/里面獲取可用節點//eth轉賬&#xff0c;bnb同理&#xff0c;但需發送到bnb對應節點val url "https://xxx"…

《真·滕王閣序》

《滕工閣序》 西二旗故地&#xff0c;后廠新府。 星分百度網易&#xff0c;地接騰訊阿里。 襟PRD而帶OKR&#xff0c;控需求以引撕逼。 物華天寶&#xff0c;龍光射工卡芯片&#xff1b;人杰地靈&#xff0c;徐孺坐產品經理之榻。 工位霧列&#xff0c;碼農星馳。 臺積電…

云盤搭建筆記

報錯問題&#xff1a; No input file specified. 偽靜態 location / {if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last;break;} } location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } } 設…

如何打造安全穩定的亞馬遜采購測評自養號下單系統?

在當今的電商領域&#xff0c;亞馬遜作為全球領先的在線購物平臺&#xff0c;其商品種類繁多&#xff0c;用戶基數龐大&#xff0c;成為了眾多商家和消費者的首選。而對于一些需要進行商品測評或市場調研的用戶來說&#xff0c;擁有一個穩定、安全的亞馬遜賬號體系顯得尤為重要…

c語言數據結構 單循環鏈表設計(完整代碼)

單鏈表的增刪查改代碼&#xff1a; 1.創建結構體 // 結構體類型的創建 struct node {int data; // 數據域struct node *next; // 指針域 };2.創建節點&#xff0c;節點的存儲在malloc申請的空間內&#xff0c;也就是堆空間。 // 創建節點 struct node *create_node…

筆記本電腦關不了機是怎么回事 這有解決方法

在快節奏的現代生活中&#xff0c;筆記本電腦已成為我們工作、學習和娛樂的得力助手。在使用電腦的過程中&#xff0c;筆記本電腦突然關不了機了&#xff0c;怎么回事&#xff1f;下面驅動人生就來講一講筆記本電腦不能正常關機的解決方法&#xff0c;有需要的可以來看看。 一、…

Pytest基礎使用

概述 Pytest是Python里的一個強大的測試框架,靈活易用,可以進行功能,自動化測試使用,可以與Requests,Selenium等進行結合使用,同時可以生成Html的報告。 一、Pytest的基本使用 在未指定Pytest的配置文件時,會對以下文件進行執行: test_*.py,如:test_1.py*_test.py…

服務的拆分數據的遷移

參考&#xff1a; 數據遷移調研

【動態規劃篇】91. 解碼方法

91. 解碼方法 題目鏈接&#xff1a; 91. 解碼方法 題目敘述&#xff1a; 一條包含字母 A-Z 的消息通過以下映射進行了 編碼 &#xff1a; “1” -> ‘A’ “2” -> ‘B’ … “25” -> ‘Y’ “26” -> ‘Z’ 然而&#xff0c;在解碼已編碼的消息時&#xff0c;你…

使用【docker】+【shell】腳本半自動化部署微服務項目

一.前言 以下是一個基于 ?Docker Shell腳本? 的半自動化部署方案&#xff0c;包含鏡像構建、容器管理、網絡配置和日志監控等核心功能&#xff0c;適用于大多數Web應用或微服務項目。 二?.目錄結構 三.腳本代碼實現 1.?Shell腳本實現 (deploy.sh) #!/bin/bash# 設置顏…

每天一道算法題-兩數相加

給你兩個 非空 的鏈表&#xff0c;表示兩個非負的整數。它們每位數字都是按照 逆序 的方式存儲的&#xff0c;并且每個節點只能存儲 一位 數字。 請你將兩個數相加&#xff0c;并以相同形式返回一個表示和的鏈表。 你可以假設除了數字 0 之外&#xff0c;這兩個數都不會以 0 …

win10搭建opengl環境搭建并測試--輸出立方體球體和碗型并在球體上貼圖

參照本文檔可以完成環境搭建和測試&#xff0c;如果想要快速完成環境的搭建可以獲取本人的工程&#xff0c;包括所用到的工具鏈和測試工程源碼獲取&#xff08;非免費介意務下載&#xff09;&#xff1a;鏈接: https://pan.baidu.com/s/1H2ejbT7kLM9ore5MqyomgA 提取碼: 8s1b …

CIR-Net:用于 RGB-D 顯著性目標檢測的跨模態交互與優化(問題)

摘要 問題一&#xff1a;自模態注意力優化單元和跨模態加權優化單元什么意思&#xff1f; 1 優化中間件結構的作用 位置&#xff1a;位于編碼器和解碼器之間 輸入&#xff1a;編碼器提取的RGB特征&#xff0c;深度特征以及RGB-D特征。 輸出&#xff1a;經過優化的RGB&…

LS-NET-004-簡單二層環路解決(華為銳捷思科)

LS-NET-004-簡單二層環路解決&#xff08;華為銳捷思科&#xff09; 以下是為您準備的二層環路示意圖及解決方案&#xff0c;包含四大廠商配置對比&#xff1a; 一、Mermaid 二層環路示意圖 graph TD SW1 -->|Gi0/1| SW2 SW2 -->|Gi0/2| SW3 SW3 -->|Gi0/3| SW1 SW1…

【正點原子K210連載】第七十六章 音頻FFT實驗 摘自【正點原子】DNK210使用指南-CanMV版指南

第七十六章 音頻FFT實驗 本章將介紹CanMV下FFT的應用&#xff0c;通過將時域采集到的音頻數據通過FFT為頻域。通過本章的學習&#xff0c;讀者將學習到CanMV下控制FFT加速器進行FFT的使用。 本章分為如下幾個小節&#xff1a; 32.1 maix.FFT模塊介紹 32.2 硬件設計 32.3 程序設…

火絨終端安全管理系統V2.0——行為管理(軟件禁用+違規外聯)

火絨終端安全管理系統V2.0&#xff1a;行為管理策略分為軟件禁用和違規外聯兩部分&#xff0c;能夠管理終端用戶軟件的使用&#xff0c;以及終端用戶違規連接外部網絡的問題。 l 軟件禁用 軟件禁用策略可以選擇軟件名單的屬性、添加軟件名單以及設置發現終端使用禁用軟件時的…

FastJson:JSON JSONObject JSONArray詳解以及SimplePropertyPreFilter 的介紹

FastJson&#xff1a;JSON JSONObject JSONArray詳解以及SimplePropertyPreFilter 的介紹 FastJson是阿里巴巴開發的一款專門用于Java開發的包&#xff0c;實現Json對象&#xff0c;JavaBean對&#xff0c;Json字符串之間的轉換。 文章目錄 FastJson&#xff1a;JSON JSONObje…

DEFI幣生態重構加速,XBIT去中心化交易所引領DEX安全新范式

2025年3月18日&#xff0c;全球加密市場在監管與技術共振下迎來結構性變革。去中心化金融&#xff08;DeFi&#xff09;代幣DEFI幣因跨鏈流動性協議升級引發社區熱議&#xff0c;而幣應XBIT去中心化交易所&#xff08;以下簡稱XBIT&#xff09;憑借其鏈上透明驗證機制、無需下載…