发布时间:2026/7/10 17:20:23
C语言实现小根堆 迭代式建堆#includestdio.hvoidswap(int*a,int*b){inttemp*a;*a*b;*btemp;}voiddown(int*nums,intsize,inti){for(intk2*i1;ksize;k2*k1){/* 父节点 (k - 1) / 2左子节点 k右子节点 k 1 */printf_s(*************************************************************\r\n);printf_s(父节点i %d, 左子节点k %d, 右子节点k 1 %d\r\n,i,k,k1);// 取左右子节点中较小的那一个if(k1sizenums[k]nums[k1]){printf_s(nums[%d] nums[%d] %d %d k\r\n,k,k1,nums[k],nums[k1]);k;}if(nums[k]nums[(k-1)/2]){printf_s(nums[%d] nums[%d] %d %d break\r\n,k,(k-1)/2,nums[k],nums[(k-1)/2]);printf_s(*************************************************************\r\n);break;}printf_s(nums[%d] nums[%d] %d %d swap\r\n,k,(k-1)/2,nums[k],nums[(k-1)/2]);swap(nums[k],nums[(k-1)/2]);for(intj0;jsize;j){printf(%d ,nums[j]);}printf_s(\r\n);for(intj0;jsize;j){printf(%d ,j);}printf_s(\r\n*************************************************************\r\n);}}voidInit(int*nums,intsize){for(intisize/2-1;i0;i--){down(nums,size,i);}}intPop(int*nums,intsize){swap(nums[0],nums[size-1]);down(nums,size-1,0);returnnums[size-1];}voidPush(int*nums,intsize,intx){nums[size]x;// 子节点小于父节点的值交换值for(intisize;i0nums[(i-1)/2]nums[i];i(i-1)/2){swap(nums[(i-1)/2],nums[i]);}}voiditerator(int*nums,intsize){for(inti0;isize;i){printf(%d ,nums[i]);}printf(\n);}intmain(){intarr[]{9,8,7,6,5,4,3,2,1};intnsizeof(arr)/sizeof(arr[0]);Init(arr,n);printf(Min Heap:\n);iterator(arr,n);Push(arr,n-1,0);iterator(arr,n);Pop(arr,n);iterator(arr,n);return0;}运行结果大根堆中的比较逻辑如果父节点小于较大的子节点交换两个节点小根堆中的比较逻辑如果父节点大于较小的子节点交换两个节点这是废话^~^外部参考C 语言实现海量数据 TopK 问题小顶堆实战详解C语言实现大根堆

相关新闻

2026/7/10 17:20:23

Phoenix.PubSub实战教程:构建实时在线用户状态追踪功能

Phoenix.PubSub实战教程:构建实时在线用户状态追踪功能 【免费下载链接】phoenix_pubsub Distributed PubSub and Presence platform for the Phoenix Framework 项目地址: https://gitcode.com/gh_mirrors/ph/phoenix_pubsub Phoenix.PubSub是Phoenix框架的…

2026/7/10 21:05:38

3大核心突破:重新定义PDF文档的批量处理工作流

3大核心突破:重新定义PDF文档的批量处理工作流 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等 项目地址: https://gitcode.c…

2026/7/10 21:05:38

2026年GEO生成式引擎优化行业趋势、与传统SEO的核心区别

引言 2026年,生成式人工智能(AI)搜索已不再是前沿概念,而是成为用户获取信息的主流方式。当数以亿计的用户习惯于向AI提问并直接获取综合性答案时,企业数字营销的底层逻辑正在经历深刻重构。过去,线上品牌建…

2026/7/10 21:00:37

3步搭建AI股票分析系统:开源智能投资工具快速入门指南

3步搭建AI股票分析系统:开源智能投资工具快速入门指南 【免费下载链接】daily_stock_analysis LLM 驱动的多市场股票智能分析系统:多源行情、实时新闻、决策看板与自动推送,支持零成本定时运行。 LLM-powered multi-market stock analysis sy…

2026/7/10 5:21:51

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求,所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本(如所谓“GPT-5”)是由境外机构研发的大语言模型&#…

2026/7/10 2:34:05

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…

2026/7/10 0:02:49

5大实战技巧:用ExifToolGUI轻松解决照片元数据管理难题

5大实战技巧:用ExifToolGUI轻松解决照片元数据管理难题 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾为整理旅行照片时发现拍摄时间错乱而头疼?是否需要在数百张照片中批量…

2026/7/10 6:36:15

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…