判断小根堆和大根堆
📅 2026/7/10 14:39:37
👁️ 次浏览
日常学习记录。如有错误还望指正一、判断小根堆小根堆概念小根堆的最小元素存放在堆顶且任意一个非根节点的结点都大于或等于双亲结点。【孩子结点值双亲结点值】结点下标介绍注n为堆的结点总个数。奇数结点双分支根结点下标[0n/2-1]双分支左孩子下标2*根节点下标1双分支右孩子下标2*根节点下标2偶数结点单分支根结点下标n/2-1单分支左孩子下标n-1双分支根结点下标[0n/2-2]双分支左孩子下标2*根节点下标1双分支右孩子下标2*根节点下标2算法思想利用排除法排除掉孩子结点值大于根节点的所有情况如果都不符合以上情况就是小根堆否则不是。判断大根堆算法思想类似。#include stdio.h //判断小根堆堆以顺序表存储 bool judge(int a[],int n) //n为数组a的长度 { //偶数结点时有单分支双分支 if(n%20) { if(a[n/2-1]a[n-1]) //判断单分支若单分支的根节点左孩子则返回false return false; for(int in/2-2;i1;i--) //判断双分支注意i的起始条件 { if((a[i]a[2*i1])||(a[i]a[2*i2]))//双亲节点和左右孩子结点大小比较 return false; } } //奇数结点时无单分支只有双分支 else { for(int in/2-1;i1;i--) //判断双分支注意i的起始条件 { if((a[i]a[2*i1])||(a[i]a[2*i2])) return false; } } return true; } int main() { int a1[7]{8,15,10,21,34,16,12}; int a2[7]{8,15,10,21,34,16,7}; int a3[6]{8,15,10,21,34,16}; int a4[8]{8,15,10,21,34,16,12,30}; int a5[8]{8,15,10,21,34,16,12,10}; printf(%d\n,judge(a1,7));//1 printf(%d\n,judge(a2,7));//0 printf(%d\n,judge(a3,6));//1 printf(%d\n,judge(a4,8));//1 printf(%d\n,judge(a5,8));//0 return 0; } /* 0 8 / \ 1 15 10 2 / \ / \ 21 34 16 12 小根堆 3 4 5 6 8 / \ 15 10 / \ / \ 21 34 16 7 非小根堆 8 / \ 15 10 / \ / 21 34 16 小根堆 8 / \ 15 10 / \ / \ 21 34 16 12 小根堆 / 30 8 / \ 15 10 / \ / \ 21 34 16 12 非小根堆 / 10 */二、判断大根堆大根堆概念大根堆的最大元素存放在堆顶且任意一个非根节点的结点都小于或等于双亲结点。【孩子结点值双亲结点值】,和小根堆概念相反。把判断小根堆的全部改成其余不变#include stdio.h //判断大根堆 bool judge(int a[],int n) //n为数组a的长度 { //偶数结点时有单分支双分支 if(n%20) { if(a[n/2-1]a[n-1]) //判断单分支若单分支的根节点左孩子则返回false return false; for(int in/2-2;i1;i--) //判断双分支注意i的起始条件 { if((a[i]a[2*i1])||(a[i]a[2*i2]))//双亲节点和左右孩子结点大小比较 return false; } } //奇数结点时无单分支只有双分支 else { for(int in/2-1;i1;i--) //判断双分支注意i的起始条件 { if((a[i]a[2*i1])||(a[i]a[2*i2])) return false; } } return true; } int main() { int a1[7]{25,13,10,12,9,16,7}; int a2[7]{25,13,10,12,9,8,7}; int a3[6]{25,13,10,12,9,8}; printf(%d\n,judge(a1,7)); printf(%d\n,judge(a2,7)); printf(%d\n,judge(a3,6)); return 0; } /* 25 / \ 13 10 / \ / \ 12 9 16 7 非大根堆 25 / \ 13 10 / \ / \ 12 9 8 7 大根堆 25 / \ 13 10 / \ / 12 9 8 大根堆 */
Visual C运行库AIO项目技术实现深度解析 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist
VisualCppRedist AIO是一个集成了Microsoft Visual C 2005至2022所有版本…
📅 2026/7/10 14:38:36
statig宏魔法:减少80%样板代码的实用技巧 【免费下载链接】statig Hierarchical state machines for designing event-driven systems 项目地址: https://gitcode.com/gh_mirrors/st/statig
想要在Rust中构建高效的事件驱动系统吗?今天我要为你揭…
📅 2026/7/10 14:38:36
在建筑消防安全日益受到重视的今天,纳米硅防火玻璃作为保障建筑安全的关键材料,其选择至关重要。2026年,面对众多纳米硅防火玻璃厂商,工程采购方常常陷入选择困境。究竟哪个才是行业优选呢?让我们以徐州住华特种玻璃有…
📅 2026/7/10 14:38:36
这里我推荐ideatrae双开发,其实trae本质是vscode,如果大家有其他问题,可以查看相关vscode解决方法,因为vscode也比较成熟,所以问题描述清楚,基本都能解决。
Cursor的配置除了最后面的AI之外,其他…
📅 2026/7/10 15:44:11
需求
现在有一些表,部分字段存在加密信息,需要解密后存到另一个数据库。
存在一些数据量超大的单表,服务器配置有限无法一次性加载进内存。
解密后的表被下游使用,解密效率上有要求。
加密的表数量可能增加,加密字…
📅 2026/7/10 15:44:11
终极思维可视化神器:用Project Graph重塑你的思考与规划方式 【免费下载链接】project-graph A node-based visual tool for organizing thoughts and notes in a non-linear way. 项目地址: https://gitcode.com/gh_mirrors/pr/project-graph
在信息爆炸的时…
📅 2026/7/10 15:44:11
更多请点击:
https://intelliparadigm.com
第一章:Cursor 4.5 Beta深度集成DeepSeek-V3的重大意义 Cursor 4.5 Beta 将 DeepSeek-V3 大语言模型原生嵌入编辑器核心工作流,标志着AI编程工具从“辅助补全”迈向“语义协同开发”的关键拐点。此…
📅 2026/7/10 15:44:11
iir1深度解析:揭秘实时数字信号处理库的核心架构 【免费下载链接】iir1 DSP IIR realtime filter library written in C 项目地址: https://gitcode.com/gh_mirrors/ii/iir1
iir1是一个用C编写的实时数字信号处理IIR滤波器库,它为开发者提供了高效…
📅 2026/7/10 15:44:11
5款免费开源工具:让你的Mac从"数字垃圾场"重回巅峰性能 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors…
📅 2026/7/10 15:43:11
一、为什么接口自动化测试,适合用AI赋能?
大家可自行先思考一个问题:
AI赋能测试全流程,为什么优先推荐从接口自动化切入?
有三个典型原因:
接口输入结构化,AI最擅长"吃"
接口有OpenA…
📅 2026/7/10 0:00:53
终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock
原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…
📅 2026/7/10 0:00:53
YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…
📅 2026/7/10 0:00:53
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/9 15:10:35
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/9 14:14:01
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/9 15:10:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/9 15:10:36
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/9 15:10:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/9 15:10:36