堆排序-C语言

news/2024/4/27 16:18:23

算法思想:

建立一个大根堆;(将一棵普通的树转化为大根堆)
每次将根和待排序的最后一个交换,然后再调整,循环len-1次即可;

调整为大根堆的方法:

从最后一棵子树开始,从后往前调整;
每次调整,从上往下;
调整为大根堆;

堆调整的代码实现:
void  HeapAdjust(int* arr, int start, int end)//堆调整
{int  tmp = arr[start];for (int i = 2 * start + 1; i <= end; i=2*i+1){if (i < end && arr[i] < arr[i + 1])//如果有右孩子,并且左孩子的值小于右孩子{i++;}//i一定是左右孩子的最大值if (arr[i] > tmp){arr[start] = arr[i];start = i;}else{break;}}arr[start] = tmp;
}

代码实现:

void   HeapSort(int* arr, int len)//堆排序,O(nlogn),O(1),不稳定
{int i;//第一次建立大根堆,从后往前,多次调整for (i = (len - 1 - 1) / 2; i >= 0; i--)//有一个数学证明,O(n){HeapAdjust(arr, i, len - 1);//第一次建立大根堆}//每次将根和待排序的最后一个交换,然后再次调整int  tmp;for (i = 0; i < len - 1; i++)  //O(nlogn){//交换tmp = arr[0];arr[0] = arr[len - 1 - i];arr[len - 1 - i] = tmp;//再次调整HeapAdjust(arr, 0, len -1-i  -1);//堆调整}
}

效率分析:

时间复杂度:O(nlogn),系数大,空间复杂度O(1),不稳定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11129.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

抖音视频关键词批量采集工具|无水印视频爬虫提取软件

抖音视频关键词批量采集工具&#xff1a; 我们很高兴地介绍最新推出的抖音视频关键词批量采集工具&#xff0c;该工具集成了多项强大功能&#xff0c;让您轻松实现视频内容的批量提取和下载。以下是详细的功能解析和操作说明&#xff1a; 主要功能&#xff1a; 关键词批量提取…

6个免费的ChatGPT网站

AI 大模型的出现给时代带来了深远的影响&#xff1a; 改变了产业格局&#xff1a;AI 大模型的发展推动了人工智能技术在各行业的广泛应用&#xff0c;改变了传统产业的运作方式&#xff0c;促进了新兴产业的崛起&#xff0c;如智能驾驶、医疗健康、金融科技等。提升了科学研究…

基于51单片机的智能晾衣架设计资料(论文+源码+仿真)

目录 1、资料内容 2、整体架构流程 3、主控单元设计 4、LCD液晶显示 5、仿真图 6、程序 资料下载地址&#xff1a;基于51单片机的智能晾衣架设计资料(论文源码仿真) 1、资料内容 2、整体架构流程 为了实现晾衣自身能够完成对外界数据的采集与分析&#xff0c;集成控制环节我们采…

前端小白的学习之路(webpack)

提示&#xff1a;webpack简介&#xff0c;nvm,npm配置环境,常用命令&#xff0c;基本web项目构建 目录 webpack 1.配置环境 1)node.js node常用命令 2)nvm nvm常用命令&#xff1a; 3)npm npm常用命令 2.构建简易web项目 1)创建目录 2)安装webpack依赖 3)配置 webpac…

前端发版上线出现白屏问题

目录 路由配置问题资源缓存问题首屏加载过慢 &#xff1a;喂&#xff0c;你的页面白啦&#xff01; 出现上线白屏的问题有很多&#xff0c;如&#xff1a;配置错误、缓存问题、浏览器兼容问题&#xff0c;根据不同情况去解决。 路由配置问题 问题描述&#xff1a; 在vue开发…

阿里云2核4G服务器优惠价格30元、165元和199元1年,轻量和ECS

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…