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.mzph.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;凭借其链上透明验证机制、无需下载…