#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <time.h>
using namespace std;
const int HEAPSIZE = 10;
int heap[HEAPSIZE + 1];
int MAKEHEAP(int i ,int size)
{
int child,rootkey,tmp;
tmp = heap[i];
rootkey = heap[i];
child = 2 * i;
while ( child <= size)
{
if ( (child < size ) && heap[child] > heap[child+1] )
child++;
if( tmp < heap[child] ) //这里我傻了吧唧的打成了heap[i] < heap[child]了,结果WAWAWA
break;
else{
heap[child/2] = heap[child];
child = child*2;
}
}
heap[child/2] = tmp;
}
int main()
{
srand(time(NULL));
for(int i = 1 ; i <= HEAPSIZE; i++)
{
heap[i] = rand() % 100;
}
printf("Before Sorting: \n");
for(int i = 1 ; i <= HEAPSIZE; i++)
{
printf("%d ",heap[i]);
if(i % 5 == 0 ) printf("\n");
}
for(int i = (HEAPSIZE ) / 2; i > 0 ; i--)
{
MAKEHEAP(i,HEAPSIZE);
}
int tmp = 0;
printf("After sorting:\n");
for (int i = HEAPSIZE - 1 ; i > 0; i--)
{
tmp = heap[1];
heap[1] = heap[ i + 1];
printf("%d ",tmp);
if( i % 5 == 0 ) printf("\n");
MAKEHEAP(1,i);
}
printf("%d ",heap[1]);
return 0;
}
相关推荐
ACM竞赛:实用算法模板指南
ACM国际大学生程序设计竞赛(ACM-ICPC)是世界上公认的规模最大、水平最高的国际大学生程序设计、算法与编程竞赛。它不仅考察参赛者的编程能力,也考验他们的团队协作、问题解决和时间管理能力。为了在有限的时间内解决复杂的问题,熟练掌握算法模板显得至关重要。算法模板是一种代码模式,它可以在遇到相似问题时快速应用和调整,极大地提高了编程效率和解题速度。本章将带您了解ACM竞赛背景以及算法模板的重要性,同时简述如何利用算法模板在ACM竞赛中提高效率。
ACM常用模板——数据结构——优先队列(堆)
数据结构——优先队列(堆)
ACM竞赛实战必备代码模板集合
在ACM国际大学生程序设计竞赛中,算法模板是提高编码效率、减少重复劳动的关键工具。算法模板是指针对特定问题或算法类别预先编写好的代码框架,它封装了算法逻辑并提供了一个可重用的解决方案。掌握算法模板,能够帮助选手在有限的时间内快速实现问题求解,从而在竞赛中占据优势。
必学排序算法——堆排序
堆排序算法是必须掌握的一种基础算法,在一些比较出名的竞赛acm、蓝桥杯,并且在一些公司面试题中都可能会出现,而且作为简单题我们必须要拿下,所以我们要引起重视,下面让我们来深入了解堆排序算法。堆排序(Heap Sort)是一种基于堆数据结构的比较排序算法。堆是一个近似完全二叉树的结构,分为最大堆和最小堆。在最大堆中,父节点的值总是大于或等于其子节点的值;而在最小堆中,父节点的值总是小于或等于其子节点的值。堆排序通常使用最大堆来升序排序数组,使用最小堆则可以降序排序数组。
浙江大学ACM算法竞赛模板集
在算法竞赛中,资源包是参赛者们不可或缺的助手。资源包可以帮助选手们更好地理解问题、设计算法,并且快速实现编程解决方案。浙大的ACM模板以其高效、简洁、易于使用而著称,为算法竞赛提供了极为便利的编程环境。
清华大学ACM竞赛题库与算法实战模板
ACM国际大学生程序设计竞赛(ACM-ICPC)是全球最具影响力的程序设计竞赛之一,旨在通过团队协作解决复杂的算法问题。比赛通常由3人组成的团队参与,限时5小时,需完成10~13道编程题目。参赛者需具备扎实的算法基础、编码能力与良好的团队配合意识。竞赛采用在线评测系统(Online Judge),提交代码后系统会自动判题并反馈结果。每道题目的正确性由多组测试用例验证,只有完全通过测试才能获得相应分数。
《ACM竞赛-C/C++入门》 C语言-21
尹成老师带你步入C语言基础的殿堂,讲课生动风趣、深入浅出,全套视频内容充实,整个教程以C语言为核心,完整精彩的演练了C语言操作流程以及各种精彩的小项目等,提高竞赛能力,非常适合同学们学习!
浙大ACM编程竞赛经典算法模板实战合集
ACM国际大学生程序设计竞赛(ICPC)作为全球最具影响力的计算机算法赛事之一,对参赛者的算法设计能力、代码实现效率与问题抽象思维提出了极高要求。在长期的备赛实践中,浙江大学ACM队总结出一套系统化、模块化的编程模板体系,广泛应用于各类算法场景中。本章将从整体视角出发,介绍ACM竞赛中高频出现的核心算法类别,包括排序、搜索、图论、动态规划、贪心策略、数据结构、数论与字符串处理等,并阐述“模板化编程”在高压限时比赛中的战略意义——通过预研与固化经典算法实现,大幅提升编码速度与正确率。
ACM入门(2)——数据结构——堆排序
ACM入门(2)——数据结构——堆排序 作为内部排序中的重要一员,堆排序是对简单排序中的“选择排序”的优化,常见的是以数组构造的完全二叉树,其结构列类似世界杯16强后的淘汰赛(想想各豪强的对决形势图),自顶向下每个节点往下至多有两个分支,其结构的优点是最优者不必与其它各队比较即可捧杯,这样即可将选择排序中逐个比较的缺点消除,时间复杂度由n级别降到log(n);排n个数即为O(n*
ACM准备模板——堆排序模板
ACM准备模板 堆排序模板 acm 堆 排序
Windows10开机无限蓝屏(SrtTrail.txt)
这个问题已经有很多的大佬发过解决办法了,这里仅仅作为自己日后方便查找所写文章 无法开机——自动修复失败,报SrtTrail.txt文件错误,且陷入无限蓝屏的循环 事故 故事的起因是这样的: 开开心心的组装电脑,花了几天时间来配置,然后发现USB3.0的接口太少,于是在某宝上搞到一张pcie转7口USB3.0的转接卡,往电脑上一插 插电,开机,电流轻松跑上去 然后,它和原来的磁盘阵列卡冲突,跳过阵列卡自检直接进入系统,boom,就导致了这场悲剧 解决方法 在蓝屏的界面找到:疑难解答->通过命令提示符 使
堆排序【模板】
很认真地看完了《算导》的排序之前的所有部分,除了算法复杂度那一章的数学要求太高,难以完全驾驭以外,其他的部分还是很好理解的。。。 争取把《算导》里面出现的算法都自己实现,制作自己的模板,以后好用。。。堆排序虽然在一般的时候是没有快排好用,但是在优先队列里面很好用,所以也是很有力的武器! 这个堆排序模板是我基本完全按照《算法导论》里面自己一个字一个字的敲上去的,调试的时候修改了几个小地方:1.h
activiti(六):activiti7的数据表和字段的解释
介绍activiti7的数据表和各表字段的含义,对于学习activiti7工作流引擎的运行过程很有帮助!
模板——堆排序
堆排序 void push_down(vector <int>& s, int size, int u) { int t = u, l = u * 2, r = u * 2 + 1; if (l <= size && s[l] > s[t])t = l; if (r <= size && s[r] > s[t])t ...
AGX Orin设计-外围电路设计之一
AGX ORIN是英伟达Jetson系列中算力规格最高端的模组,其高达200TOPS/275TOPS的算力可以为各类场景提供澎湃的算力支持,本篇文章针对AGX ORIN的常规外围电路设计做分析描述。
【Stata双重差分模型】双重差分DID的具体操作步骤
本案例将详细阐述如何使用双重差分法进行实证分析,并展示具体的STATA操作代码。
堆排序模板
最小堆删除堆顶法排序 #include <stdio.h> int n;//存储堆中的数组的个数 int h[101];//存放堆的数组 void swap(x, y)//交换堆中的两个元素 { int t; t=h[x]; h[x]=h[y]; h[y]=t; return; } void shiftdown(int i)//第i个位置向下调整 { int t...
Zemax显微镜设计:从物镜到目镜的完整光学系统优化
本文详细介绍了使用Zemax进行显微镜光学系统设计的完整流程,从物镜到目镜的优化技巧。通过实战案例和关键参数设置,帮助读者掌握数值孔径、视场角等核心概念,实现高分辨率显微镜设计。文章特别强调了系统级优化和公差分析的重要性,为科研和工业检测提供可靠的光学解决方案。
hdu 1280 堆排序
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 18816 Accepted Submission(s): 6416Problem Description 还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已
RK3568笔记十七:LVGL v8.2移植
若该文为原创文章,转载请注明原文出处。本文介绍嵌入式图形库移植到Linux开发板ATK-RK3568上的步骤。
【Flutter 问题系列第 85 篇】Xcode 运行 Flutter 提示 The Dart VM Service was not discovered after 60 seconds.
在 Xcode 上运行 Flutter 时提示 `The Dart VM Service was not discovered after 60 seconds. This is taking much longer than expected...`,意思是 `60秒后未发现Dart虚拟机服务。这比预期的要长得多`
堆排序[模板]
新手向手写堆教程
【DeepSeek R1构建本地RAG知识库】数据结构化清洗-知识图谱制作、使用、dify集成
本文探讨了在构建本地RAG(Retrieval-Augmented Generation)系统时,如何通过引入知识图谱来增强系统的知识理解能力。传统的向量数据库和嵌入模型虽然能处理语义匹配,但无法有效捕捉知识间的关联性。知识图谱通过“实体-关系-属性”的结构化表示,能够更好地支持推理、推荐和多跳问答等高级功能。文章详细介绍了知识图谱的基本概念、制作思路,以及如何使用Neo4j图数据库进行知识图谱的构建和查询。通过实例展示了从PDF文件解析到知识图谱入库的全过程,强调了知识图谱在提升RAG系统性能中的重要作用
基础算法技巧总结1(排序,二分,前缀和与差分,双指针,字符串)
文章摘要:本文总结了常见算法与数据结构实现,包括排序算法(快速排序、归并排序、堆排序)、二分查找(整数和浮点二分)、前缀和与差分(一维和二维)、双指针技巧以及字符串处理。提供了C++和Java两种语言的代码实现,涵盖模板题和应用题,如木材加工、分巧克力、最长不重复子序列等。重点展示了算法原理和代码模板,并针对不同编程语言给出了对应实现。
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
基于C++实现的ACM竞赛常用模板:助你高效编程的利器
基于C++实现的ACM竞赛常用模板:助你高效编程的利器 去发现同类优质开源项目:https://gitcode.com/ 项目的核心功能/场景 快速搭建ACM竞赛程序框架,涵盖常见算法与数据结构。 项目介绍 在ACM-ICPC竞赛中,时间就是生命。如何在短时间内构建高效、稳定的程序,是每位参赛选手关注的焦点。基于C++实现的ACM竞赛常用模板,正是为了解决这一问题而诞生。这套模板为选手提供了一整套...
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
1622



被折叠的 条评论
为什么被折叠?



