用C语言实现堆排序算法
1.设计思路
排序的思想将一个数组按递增的顺序进行排序,将数组的第一个位置空下(下标为0),因为会导致子节点和本身同一个结点(i和2i一致),每次堆排序在下标1的位置放上了最大值,然后和最后一个元素交换位置,使之最大值依次放在最后的位置上,最后得到一个递增序列。
2. 源代码
#include<stdio.h>
#include<stdlib.h>
void HeapSort(int a[], int n)
{ int end=8,x,y,z; // 进行堆排序,每次找出最大值放在第一个元素位置 while(end-1){while(1){ int pa=end/2,tag=0;while(pa>0){if(a[pa]<a[2*pa]){x=a[pa];a[pa]=a[2*pa];a[2*pa]=x;tag=1;}if(2*pa+1<=end&&a[pa]<a[2*pa+1]){y=a[pa];a[pa]=a[2*pa+1];a[2*pa+1]=y;tag=1;}pa--;}if(!tag) break;} // 将找出的最大值与最后一个元素调换位置 z=a[1];a[1]=a[end];a[end]=z; end--;}
}
int main(void)
{int i;int a[9]={-1,3,2,5,8,4,9,6,7};HeapSort(a,9);for( i=1;i<9;i++) // 输出整体调整后的数组 {printf("%3d",a[i]);}printf("\n");return 0;
}
3.运行结果

相关文章:
用C语言实现堆排序算法
1.设计思路 排序的思想将一个数组按递增的顺序进行排序,将数组的第一个位置空下(下标为0),因为会导致子节点和本身同一个结点(i和2i一致),每次堆排序在下标1的位置放上了最大值,然后…...
tauri在github上进行自动更新打包并发版过程,实战操作避坑
从网上找了很多很多的文章,结果还是入坑了,一个问题找了一天才解决: Error A public key has been found, but no private key. Make sure to set TAURI_PRIVATE_KEY environment variable. 596 ELIFECYCLE Command failed with exit code…...
css中flex后文本溢出的问题
原因: 为了给flex item提供一个合理的默认最小尺寸,flex将flex item的min-width 和 min-height属性设置为了auto flex item的默认设置为: min-width: auto 水平flex布局 min-height:auto 垂直flex布局 解决办法&…...
restful接口设计规范[仅供参考]
1. 域名 应该尽量将API部署在专用域名之下。 https://api.example.com 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。 https://www.example.org/api/2. 版本(Versioning) 应该将API的版本号放入URL。 http://…...
Metabase 远程代码执行(CVE-2023-38646)
漏洞描述 Metabase是一款开源数据分析及可视化工具。它可允许用户连接至各种不同类型数据源,未经身份认证的攻击者可利用本漏洞在服务器上以运行 Metabase服务器的权限进行任意命令执行。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩…...
【TiDB理论知识 07】SQL执行流程
一 DML语句读写流程 1 DML语句读流程概要 用户发出SQL 被协议层接收 Protocal Layer 通过PD获取时间戳 parse模块 解析SQL,通过词法解析 与 语法解析 生成AST语法树 编译SQL Compile模块 ,区分点查 与 非点查,生成执行计划 发送给Executor,从TIKV获…...
微服务——服务异步通讯RabbitMQ
前置文章 消息队列——RabbitMQ基本概念容器化部署和简单工作模式程序_北岭山脚鼠鼠的博客-CSDN博客 消息队列——rabbitmq的不同工作模式_北岭山脚鼠鼠的博客-CSDN博客 消息队列——spring和springboot整合rabbitmq_北岭山脚鼠鼠的博客-CSDN博客 目录 Work queues 工作队列…...
事件冒泡、事件捕获和事件委托
原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 什么是事件冒泡、事件捕获和事件委托? 事件冒泡(Event Bubbling)、事件捕获(Event Capturing)和事件委托(Event Delegation&…...
WEB 典型安全功能说明
WEB 典型安全功能 认证Authentication 认证是指通过验证用户的身份来确认用户是否有权访问某个系统或资源。在Web安全中,认证是非常重要的一环,它可以防止未经授权的访问,保护用户的数据和系统的安全。 登录 登录是用户认证的常见方式之一…...
SQL编译优化原理
最近在团队的OLAP引擎上做了一些SQL编译优化的工作,整理到了语雀上,也顺便发在博客上了。SQL编译优化理论并不复杂,只需要掌握一些关系代数的基础就比较好理解;比较困难的在于reorder算法部分。 文章目录 基础概念关系代数等价 j…...
qt signal slots lambda
这里用到了qt的版本检测 连接 Combox的currentIndexChanged事件 emit来触发处理的事件 ,进行业务或逻辑处理 这样的写法是lambda表达式的写法,和c#中的 (obj)>{ //todo } 类同 [](int indx){ //todo } #if QT_VERSION > QT_VERSION_CHECK(5,7,0)c…...
Spring【声明式事务】
事务简介 把一组业务当成一个业务来做;要么都成功,要么都失败!事务在项目开发中,十分重要,涉及到数据一致性的问题,需要十分注意!确保完整性和一致性! 事务的ACID原则:…...
【雕爷学编程】MicroPython动手做(17)——掌控板之触摸引脚2
知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…...
pytorch 中 view 和reshape的区别
在 PyTorch(一个流行的深度学习框架)中, reshape 和 view 都是用于改变张量(tensor)形状的方法,但它们在实现方式和使用上有一些区别。下面是它们之间的主要区别: 实现方式: reshap…...
认识数组指针
文章目录 数组指针的定义数组指针的应用 数组指针的定义 类比 整形数组——存放整形的数组 指针数组——存放指针的数组 整形指针——存放整形地址的指针 数组指针——存放数组地址的指针 深度理解 在之前我们知道:数组名表示首元素地址,但是有…...
SSM面试题-Spring容器的启动流程
解答: 1. BeanDefinitionReader读取配置文件(xml yml properties),创建BeanDefinition(存储bean的定义信息) 2. 配置文件读取成功后,将相应的配置转换成 BeanDefinition 的对象实例保存在DefaultListableBeanFactory#beanDefinitionMap 中 3. 根据配置的 BeanFacto…...
Vue 3:玩一下web前端技术(八)
前言 本章内容为VUE基础与相关技术讨论。 上一篇文章地址: Vue 3:玩一下web前端技术(七)_Lion King的博客-CSDN博客 下一篇文章地址: (暂无) 一、基础 官方文档:创建一个 Vue…...
AI绘画Stable Diffusion原理之Autoencoder-Latent
前言 传送门: stable diffusion:Git|论文 stable-diffusion-webui:Git Google Colab Notebook:Git kaggle Notebook:Git 今年AIGC实在是太火了,让人大呼许多职业即将消失,比如既能帮…...
C++核心知识点总结
学习一门新的程序设计语言得到最好方法就是练习编写程序! C基础 变量和基本类型 基本内置类型 定义解释 算术类型 整型:包括字符和布尔类型,bool、char、wchar_t、char16_t、char32_t、short、int、long、long long、 浮点型:…...
echart折线图,调节折线点和y轴的间距(亲测可用)
options代码: options {tooltip: {trigger: axis, //坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。},xAxis: {type: category,//类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。…...
别再傻傻分组了!3DMax里用‘附加’和‘塌陷’合并模型,这才是真的一体化
3DMax模型合并实战:从分组误区到一体化操作进阶 在3D建模领域,许多初学者常陷入一个典型误区——将"分组"等同于"合并"。我曾亲眼见证一位同事在交付建筑模型时,因误用分组功能导致整个场景在导入渲染引擎后分崩离析。这…...
BurpSuiteCN-Release:解锁中文安全测试的终极利器
BurpSuiteCN-Release:解锁中文安全测试的终极利器 【免费下载链接】BurpSuiteCN-Release BurpSuite汉化发布 项目地址: https://gitcode.com/gh_mirrors/bu/BurpSuiteCN-Release 你是否曾经面对Burp Suite满屏的英文界面感到力不从心?是否因为语…...
戴森球计划蓝图库:5000+工厂设计方案助你快速建造星际帝国
戴森球计划蓝图库:5000工厂设计方案助你快速建造星际帝国 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 在《戴森球计划》这款复杂的工厂建造游戏中࿰…...
3个步骤实现浏览器中魔兽争霸与星际争霸模型渲染的完整指南
3个步骤实现浏览器中魔兽争霸与星际争霸模型渲染的完整指南 【免费下载链接】mdx-m3-viewer A WebGL viewer for MDX and M3 files used by the games Warcraft 3 and Starcraft 2 respectively. 项目地址: https://gitcode.com/gh_mirrors/md/mdx-m3-viewer 你是否曾因…...
如何解决跨平台资源下载难题:res-downloader的完整使用指南
如何解决跨平台资源下载难题:res-downloader的完整使用指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否…...
OpCore-Simplify:三步搞定OpenCore EFI配置的终极解决方案
OpCore-Simplify:三步搞定OpenCore EFI配置的终极解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore EFI配置而…...
RoPE与KV缓存优化:提升Transformer长序列处理能力
1. 旋转位置编码(RoPE)技术解析旋转位置编码(Rotary Position Embedding, RoPE)是近年来Transformer架构中位置编码技术的重要突破。传统Transformer使用绝对或相对位置编码,而RoPE通过旋转矩阵实现位置信息的注入&…...
量子优化新突破:虚时间演化高效求解QUBO问题
1. 量子优化新范式:模拟虚时间演化解决QUBO问题在金融投资组合优化、物流路径规划和机器学习特征选择等领域,二次无约束二进制优化(QUBO)问题无处不在。这类NP难问题随着规模扩大,求解难度呈指数级增长,传统…...
大牛直播SDK(SmartMediaKit)Windows平台多路RTSP转RTMP推流集成说明
文档概述 在安防监控、智慧园区、应急指挥、工业视觉、低空经济、无人机回传和多路摄像头上云等场景中,现场设备通常以 RTSP 方式输出视频流,而云端平台、直播分发平台或业务中台往往更倾向于接收 RTMP 流。此时,系统需要在边缘侧或 Windows…...
VideoDownloadHelper终极指南:技术开发者必备的Chrome视频下载插件
VideoDownloadHelper终极指南:技术开发者必备的Chrome视频下载插件 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper VideoDownload…...
