ESP-IDF:堆排序测试

news2024/11/15 16:37:16

堆排序测试

/堆排序测试/
void printheap (int arr[],int length) {
for(int i=0;i<length;i++) {
cout<<arr[i]<<" ";
}
cout<<endl;
}

void swapheap (int arr[],int a, int b) {
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}

void heapAdjust(int arr[],int index,int length) {
int max;//辅助下标
int lchild = index2 + 1; //左孩子
int rchild = index
2 + 2; //右孩子
max = index;
if(lchild < length && arr[lchild] > arr[max]) {
max = lchild;//如果左孩子大于arr[max],max指向左孩子
}
if(rchild < length && arr[rchild] > arr[max]) {
max = rchild;//如果右孩子大于arr[max],max指向右孩子
}
if(max != index) {
swapheap(arr,max,index); //max和index不相等,根结点有调整,把最大值放到根上
heapAdjust(arr,max,length);//递归调整max位置,把最大值放到下个根结点上
}
}

void heapSort(int arr[], int length) {
// int length = sizeof(arr)/sizeof(int);

for (int i = length/2 - 1;i >= 0; i--) {
    heapAdjust(arr,i,length); //从最后一个根结点往前依次递归排成大顶堆
}

for(int i = length -1;i >= 0; i--) {
    swapheap(arr,0,i);//目前已经是大顶堆,把堆顶同最后一个元素交换
    heapAdjust(arr,0,i-1);//然后从顶堆开始递归调整堆成为大顶堆,每次最后一个数不参与调整
}

}

void test15() {
cout << “--------test 堆排序--------” << endl;

int arr[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
int length = sizeof(arr)/sizeof(int);
printheap(arr,length);
heapSort(arr,length); // 注意数组下标是从0开始的
printheap(arr,length);

}

extern “C” void app_main(void)
{
test15();
}

结果:

在这里插入图片描述

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

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

相关文章

【数据库原理与SQL Server应用】Part04——数据库操作

【数据库原理与SQL Server应用】Part04——数据库操作一、数据库基本概念1.1 物理数据库1.1.1 页和区1.1.2 数据库文件1.1.3 文件组1.2 逻辑数据库1.3 SQL Server 的系统数据库和用户数据库1.4 报表服务器和报表数据库二、创建数据库2.1 管理工具界面方式创建数据库2.2 命令行方…

CSS列表与表格

目录 ​编辑 HTML 列表和 CSS 列表属性 不同的列表项目标记 实例 图像作为列表项标记 实例 定位列表项标记 实例 删除默认设置 实例 列表 - 简写属性 实例 设置列表的颜色样式 实例 更多实例 所有 CSS 列表属性 表格边框 实例 全宽表格 实例 双边框 合并…

【数据结构与算法】最小生成树 | 最短路径

&#x1f320;作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《数据结构与算法要啸着学》 &#x1f387;座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;…

【图】邻接表存储图

目录 一、概念 图是什么 各种图的定义 二、图的存储结构 邻接矩阵 邻接表 代码实现邻接表存储图&#xff08;不含权重&#xff09; 一、概念 图是什么 图&#xff08;Graph)是由顶点的有穷非空集合和顶点之间边的集合组成&#xff0c;通常表示为:G(V,E)&#xff0c;其中…

Hystrix断路器执行原理

状态机 Hystrix断路器有三种状态,分别是关闭(Closed)、打开(Open)与半开(Half-Open),三种状态转化关系如下: Closed 断路器关闭:调用下游的请求正常通过Open 断路器打开:阻断对下游服务的调用,直接走 Fallback 逻辑Half-Open 断路器处于半开状态:SleepWindowInMi…

第 14 章python学习知识记录(一)

文章目录前言14.1 numpy的使用14.1.1 数字运算14.1.2 N维数组14.1.3 矩阵运算与广播14.1.4 元素访问14.2 Matplotlib的使用14.2.1 绘制简单图形14.2.2 绘制复杂图形14.2.3 显示图片14.3 os函数14.3.1 获取文件路径14.3.2 路径的基本操作14.4 tqdm的使用14.4.1 tqdm的导入和使用…

docker搭建hadoop和hive集群

一、安装docker并生成相关的镜像&#xff08;1&#xff09;安装docker安装docker教程https://www.runoob.com/docker/centos-docker-install.html只要在终端输入&#xff1a;sudo docker run hello-world后出现如下图的内容就证明安装docker成功了&#xff08;2&#xff09;拉取…

让HTTPS、SSH 共享端口的——工具SSLH

目录 安装 SSLH 配置 Apache 或 Nginx Web 服务器 配置 SSLH 测试 安装 SSLH sudo apt-get install sslh 配置 Apache 或 Nginx Web 服务器 编辑 Web 服务器&#xff08;nginx 或 apache&#xff09;配置文件并找到以下行&#xff1a; listen 443 ssl; 将其修改为&…

Uni-App 如何实现消息推送功能?

原文链接&#xff1a;Uni-App 如何实现消息推送功能&#xff1f; 前言 这里用的是uni-app自带的UniPush1.0&#xff08;个推服务&#xff09;&#xff0c;所以只针对UniPush1.0介绍实现步骤。 建议查阅的文章&#xff1a; UniPush 1.0 使用指南Unipush 常见问题 当然现在已…

Flink day01

Flink简介 Flink起源于Stratosphere项目&#xff0c;Stratosphere是在2010~2014年由3所地处柏林的大学和欧洲的一些其他的大学共同进行的研究项目&#xff0c;2014年4月Stratosphere的代码被复制并捐赠给了Apache软件基金会&#xff0c;参加这个孵化项目的初始成员是Stratosphe…

Flutter项目实战

1.Androidstudio 获取dart支持才会出现 下图&#xff0c;才可以单独运行 2.需要 flutter pub get 3.Android Studio 中使用 FlutterJsonBeanFactory 插件 注意点&#xff1a;需要保证该 Android Studio 窗口下是一个完整的Flutter项目&#xff08;窗口下有且仅有一个Flutter项目…

录音软件哪个好用?推荐3款亲测好用的录音软件

很多小伙伴不知道电脑如何录制声音&#xff1f;其实电脑录制声音很简单&#xff0c;借助一款好用录音软件&#xff0c;就可以轻松录制。那你知道录音软件哪个好用吗&#xff1f;小编平常的工作经常需要使用到录音软件。今天就给大家推荐3款亲测好用的录音软件&#xff0c;感兴趣…

k8s核心资源Service

1、介绍为一组pod&#xff08;一次部署&#xff09;统一暴露一个ip和端口&#xff0c;供外界访问。2、集群内对外统一暴露kubectl expose deploy <部署名> --port<对外暴露端口> --target-port<容器内部端口>kubectl expose deploy mynginx --port8000 --tar…

torch_geometric--Convolutional Layers

torch_geometric–Convolutional Layers 卷积层 MessagePassing 式中口口口表示可微的排列不变函数&#xff0c;例如: sum, mean, min, max 或者 mul 和 γΘ\gamma_{\Theta}γΘ​和ϕΘ\phi_{\Theta}ϕΘ​表示可微函数&#xff0c;例如 MLPs. 请参见这里的附带教程。 参数…

JDBC-BasicDAO

引入 之前的sql语句是固定的只能通过参数传入&#xff0c;要写那么多方法肯定不好弄 这就引出了DAO 这里是整个流程示意图 最下面开始说 就是mysql库的每一张表对应一个JavaBean 右边是我们获取和关闭连接的工具类 上面XXXDAO的意思是 每一个表&#xff0c;都有一个与之对应的D…

高压放大器在镓基液态金属微型马达驱动实验研究中的应用

实验名称&#xff1a;高压放大器在镓基液态金属微型马达驱动实验研究中的应用 研究方向&#xff1a;新型材料 测试目的&#xff1a; 微/纳马达虽然是一种以实际应用为基础的动力装置&#xff0c;但其在科学研究方面的价值也尤为重要。在微/纳米尺度下&#xff0c;它可以接受能量…

【测试如何学代码?】学习代码的最佳实践经验分享

为什么要写这篇&#xff1f; 经常在群里看到大家问&#xff1a;该选择哪门语言&#xff1f;哪门语言有钱途&#xff1f; 其实&#xff0c;不管哪门语言&#xff0c;只要深入学好了都不会差&#xff0c;当然&#xff0c;我们选择语言最好还是要和自己的技术方向及职业发展相匹配…

基于php的高校社团信息管理系统

摘 要社团是由高校用户依据兴趣爱好自愿组成&#xff0c;按照章程自主开展活动的用户组织。高校社团是实施素质教育的重要途径和有效方式&#xff0c;在加强校园文化建设、提高用户综合素质、引导用户适应社会、促进用户交流等方面发挥着重要作用&#xff0c;是新形势下有效凝聚…

Android studio:Could not find method compile() for arguments 问题解决及两种解决方法探讨延伸

Could not find method compile() for arguments 问题全称 Could not find method compile() for arguments [org.tensorflow:tensorflow-lite:] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. 如图 解决方法1(简单) …

[数据结构基础]排序算法第四弹 -- 归并排序和计数排序

目录 一. 归并排序 1.1 归并排序的实现思想 1.2 归并排序的递归实现 1.2.1 归并排序递归实现的思想 1.2.2 归并排序递归实现的代码 1.3 归并排序的非递归实现 1.3.1 归并排序非递归实现的思想 1.3.2 归并排序非递归实现的代码 1.4 归并排序的时间复杂度分析 二. 计数排…