当前位置: 首页 > news >正文

滑县网站建设哪家专业wordpress多站点管理

滑县网站建设哪家专业,wordpress多站点管理,电商推广平台哪个好,佛山企业名录黄页目录 一 二叉树的顺序结构 二 堆的概念及结构 三 堆的实现 1 包含所有接口 (Heap.h) 2 初始化,销毁和交换#xff08;Heap.c) 3 向上调整#xff08;Heap.c) 4 插入#xff08;Heap.c) ​5 向下调整#xff08;Heap.c) 6 删除#xff08;Heap.c) ​7 打印#…目录 一 二叉树的顺序结构 二 堆的概念及结构 三 堆的实现 1 包含所有接口 (Heap.h) 2 初始化,销毁和交换Heap.c) 3 向上调整Heap.c) 4 插入Heap.c) ​5 向下调整Heap.c) 6 删除Heap.c) ​7 打印Heap.c) 8 返回堆顶Heap.c) 9 判断是否为空Heap.c) 10 测试Test.c) 一 二叉树的顺序结构 顺序结构存储就是使用数组来存储一般使用数组只适合表示完全二叉树因为不是完全二叉树会有空 间的浪费。而现实中使用中只有堆才会使用数组来存储关于堆我们后面的章节会专门讲解。二叉树顺 序存储在物理上是一个数组在逻辑上是一颗二叉树。 二 堆的概念及结构 如果有一个关键码的集合K { … }把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中并满足 且 ( 且 ) i 01 2…则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆根节点最小的堆叫做最小堆或小根堆。 堆的性质 堆中某个节点的值总是不大于或不小于其父节点的值 堆总是一棵完全二叉树。 三 堆的实现 1 包含所有接口 (Heap.h) #pragma once #includestdbool.h #includeassert.h #includestdlib.h #includestdio.htypedef int HPDataType; typedef struct Heap {HPDataType* a;int size;int capacity; }HP;//向上调整 void AdjustUp(HPDataType* a, int child);//向下调整 void AdjustDown(HPDataType* a, int n, int parent);//交换 void Swap(HPDataType* p1, HPDataType* p2); //打印 void HeapPrint(HP* php); //初始化 void HeapInit(HP* php); //销毁 void HeapDestroy(HP* php); //插入 void HeapPush(HP* php, HPDataType x); //删除 void HeapPop(HP* php); //返回堆顶 HPDataType HeapTop(HP* php); //是否为空 bool HeapEmpty(HP* php); 2 初始化,销毁和交换Heap.c) #includeHeap.hvoid HeapInit(HP* php) {assert(php);php-a NULL;php-size php-capacity 0; }//销毁 void HeapDestroy(HP* php) {assert(php);free(php-a);php-a NULL;php-size php-capacity 0; }//交换 void Swap(HPDataType* p1, HPDataType* p2) {int tmp *p1;*p1 *p2;*p2 tmp; } 3 向上调整Heap.c) 时间复杂度 O(logN) //向上调整 void AdjustUp(HPDataType* a, int child) {int parent (child - 1) / 2;while (child 0){if (a[child] a[parent])//如果建大堆 就改成 a[child] a[parent]{Swap(a[child], a[parent]);child parent;parent (child - 1) / 2;}else{break;}} }4 插入Heap.c) //插入 void HeapPush(HP* php, HPDataType x) {assert(php);if (php-size php-capacity){int newcapacity (php-capacity 0 ? 4 : php-capacity * 2);HPDataType* tmp (HPDataType*)realloc(php-a, sizeof(HPDataType) * newcapacity);if (tmp NULL){perror(realloc fail);exit(-1);}php-a tmp;php-capacity newcapacity;}php-a[php-size] x;php-size;AdjustUp(php-a, php-size - 1); } 5 向下调整Heap.c) 时间复杂度 O(logN) //向下调整 void AdjustDown(HPDataType* a, int n, int parent) {int child parent * 2 1;while (child n){//找小的那个孩子if (child1 n a[child1] a[child])//child1n 防止数据越界 如果想改成大堆 改成{child;}if (a[child] a[parent])//如果想大堆 改成{Swap(a[child], a[parent]);parent child;child parent * 2 1;}else{break;}} }6 删除Heap.c) //删除 void HeapPop(HP* php) {assert(php);assert(php-size 0);Swap(php-a[0], php-a[php-size - 1]);php-size--;AdjustDown(php-a, php-size, 0); } 7 打印Heap.c) //打印 void HeapPrint(HP* php) {assert(php);for (size_t i 0; i php-size; i){printf(%d , php-a[i]);}printf(\n); } 8 返回堆顶Heap.c) //返回堆顶 HPDataType HeapTop(HP* php) {assert(php);assert(php-size 0);return php-a[0]; } 9 判断是否为空Heap.c) bool HeapEmpty(HP* php) {assert(php);return php-size 0; }//堆为空返回1 true //堆不为空 返回0 false 10 测试Test.c) 小堆情况升序 #includeHeap.hint main() {int a[] { 2,3,5,7,4,6,8,65,100,70,32,50,60 };HP hp;HeapInit(hp);for (int i 0; i sizeof(a) / sizeof(int); i){HeapPush(hp, a[i]);}HeapPrint(hp);while (!HeapEmpty(hp)){printf(%d , HeapTop(hp));HeapPop(hp);}HeapDestroy(hp);return 0; }但是这种排序方式有明显的缺陷 1、先有一个堆的数据结构 2、空间复杂度复杂度的消耗 所以我们可以改进一下 用真正的堆排序 堆排序有很多细节 所以放在后面一节讲 本节很基础 与栈的实现有很多相似之处 大家也可以看我之前对栈的讲解 以此加深印象 继续加油!
http://www.zqtcl.cn/news/776775/

相关文章:

  • 农家乐网站建设wordpress改变访问目录结构
  • 单位网站建设的重要性盐城城南建设局一局网站
  • 网站登录验证码显示不出来刘强东当年做网站读的什么书
  • 网站seo优化步骤动态ip可以做网站
  • 用自己电脑怎么做网站广州公司建站
  • 购物网站前端浮动特效怎么做常用开发工具
  • 网页设计与制作精品课程网站wordpress文章页禁止右键
  • 英迈思做网站做的怎样中国建设银行官方网站纪念币
  • 最专业的手机网站建设厦门建设厅网站
  • 贵州省建设工程质量检测协会网站c 网站开发类似优酷
  • 关于网站建设申请卢沟桥做网站的公司
  • 网站源码对应的数据库怎么做单页成品网站
  • 网站分为哪几类上海人才网官网招
  • 网站建设的常见技术有哪些方面网站联系我们模块怎么做
  • 外贸网站建设专业上海四大设计院是哪四个
  • 太原网站设计排名维启网站建设
  • 电子商务网站建设基本流程图网站建设推广策划
  • 合肥集团网站建设哪个好果洛电子商务网站建设哪家好
  • 顺德高端网站企业建设网站没有服务器
  • .net网站开发模板天津手网站开发
  • 网页设计大赛网站开发重庆最近的新闻大事10条
  • 网站ftp用户名和密码是什么建设单位网站设计
  • 公司请人做的网站打不开网页游戏大厅都有哪些
  • 网投网站制作中国建设教育协会报名网站
  • 做外贸需要做网站吗上海中建建筑设计院有限公司
  • 网站源代码免费下载苏州seo网络优化公司
  • 建网站跟建网店的区别pico笔克品牌介绍
  • 网站设计小技巧西安网站建设网站
  • 做听书网站怎么做网站留言板带后台模板
  • 石家庄网站建设王道下拉棒厦门橄榄网站建设