#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 堆 排序
在Mac下配置用VSCode编写C/C++程序的环境
前言 最近需要编写一些C/C++程序,由于体量都不是很大所以想要追求一个轻量化的编辑和编译环境,于是想起了在Dock栏吃灰的VSCode。通过查找资料,包括VSCode的官方文档,最终配置实现了Mac下基于VSCode的C/C++编辑环境搭建。 正文 在配置环境之前先检查一下机器上都安装了什么C++编译器,通过以下两条命令可以查看是否安装了g++/clang编译器,本人两种编...
堆排序【模板】
很认真地看完了《算导》的排序之前的所有部分,除了算法复杂度那一章的数学要求太高,难以完全驾驭以外,其他的部分还是很好理解的。。。 争取把《算导》里面出现的算法都自己实现,制作自己的模板,以后好用。。。堆排序虽然在一般的时候是没有快排好用,但是在优先队列里面很好用,所以也是很有力的武器! 这个堆排序模板是我基本完全按照《算法导论》里面自己一个字一个字的敲上去的,调试的时候修改了几个小地方:1.h
SAP ERP销售应收&成本科目确定
ERP作为业财一体软件,其中最核心的就是业务与财务模块的自动集成,无需财务进行手工做账,提高工作效率的同时降低人工操作产生的误差。今天浅浅的分享一下SD模块生成会计凭证时,借贷项确定的系统配置。一般项目上借贷项、科目都有FICO提供,但是具体的集成配置是在SD这边。
模板——堆排序
堆排序 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 ...
lumerical中DEVICE和MODE模块的交互使用(真的很干货!!可以自信的说网上绝对找不到比我更详细的步骤了)
几个脚本文件很重要! Lumerical仿真流程: 一、DEVICE: (1).建模并且运行完之后,在脚本提示符下键入以下脚本行以运行plotDopingProfile.lsf如图1(文件名如果索引不到的话就可以把文件直接用notepad++打开,然后把代码直接输入到device中script脚本中 如图2)脚本文件并生成下图 如图3: (图2) (图1) (图3) (2).仿真...
innovus:如何在init design之后新增参考库(lib/lef)
如题,在PR过程中经常会遇到这种问题,时序无法收敛,需要新增一套lvt或者hpc的库,怎么办?
堆排序模板
最小堆删除堆顶法排序 #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...
eNSP常见故障处理
eNSP无法启动设备一直停在#井号的问题的解决方案?
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)其实小希已
PyRoki:机器人运动学优化库入门教程
PyRoki:模块化机器人运动学优化工具包 本文介绍了PyRoki,一个模块化、可扩展且跨平台的机器人运动学优化工具包。PyRoki通过统一变量和成本函数接口,简化了逆运动学、轨迹优化和运动重定向等任务的实现,支持CPU、GPU和TPU加速。实验表明,PyRoki在批量逆运动学任务中比现有GPU加速库cuRobo快1.4-1.7倍,且收敛误差更低。其模块化设计支持快速集成新成本函数,并通过交互式可视化工具优化参数配置。PyRoki开源发布,为机器人运动优化提供了灵活高效的解决方案。
Jetson 平台编译安装 FFmpeg 7.1(支持 Nvmpi + SRT + x265)
摘要: 本文详细介绍了在NVIDIA Jetson平台上编译FFmpeg 7.1并集成关键功能的全过程。通过补丁方式加入Nvmpi实现硬件加速支持,同时编译集成x265编码器和SRT低延迟传输协议。步骤涵盖:1)安装x265编码器;2)配置SRT协议支持;3)编译jetson-ffmpeg的Nvmpi接口;4)定制化编译FFmpeg 7.1;5)验证模块集成情况。最终实现支持硬件编解码、高效HEVC压缩和可靠推流的增强版FFmpeg,为Jetson平台的音视频处理提供完整解决方案。
堆排序[模板]
新手向手写堆教程
游戏大厂技术护城河——为什么你抄不了原神?
│ │ │ │ ↓ 通过 │ │ │ │。│ │ │ │ ↓ 成功 │ │ │ │。│ │ │ │ ↓ 完成 │ │ │ │。│ │ │ │ ↓ 达标 │ │ │ │。
基础算法技巧总结1(排序,二分,前缀和与差分,双指针,字符串)
文章摘要:本文总结了常见算法与数据结构实现,包括排序算法(快速排序、归并排序、堆排序)、二分查找(整数和浮点二分)、前缀和与差分(一维和二维)、双指针技巧以及字符串处理。提供了C++和Java两种语言的代码实现,涵盖模板题和应用题,如木材加工、分巧克力、最长不重复子序列等。重点展示了算法原理和代码模板,并针对不同编程语言给出了对应实现。
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
基于C++实现的ACM竞赛常用模板:助你高效编程的利器
基于C++实现的ACM竞赛常用模板:助你高效编程的利器 去发现同类优质开源项目:https://gitcode.com/ 项目的核心功能/场景 快速搭建ACM竞赛程序框架,涵盖常见算法与数据结构。 项目介绍 在ACM-ICPC竞赛中,时间就是生命。如何在短时间内构建高效、稳定的程序,是每位参赛选手关注的焦点。基于C++实现的ACM竞赛常用模板,正是为了解决这一问题而诞生。这套模板为选手提供了一整套...
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
1622



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



