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

网站做抽奖活动外链发布工具

网站做抽奖活动,外链发布工具,建筑设计师接私活平台,wordpress模板首页目录 满二叉树与完全二叉树高度h和树中节点个数N的关系 向上调整算法: 介绍: 复杂度推导: 向下调整算法: 介绍: 复杂度推导: 向上调整建堆: 介绍: 复杂度推导:…

目录

满二叉树与完全二叉树高度h和树中节点个数N的关系

向上调整算法:

介绍:

复杂度推导:

向下调整算法:

介绍:

复杂度推导:

向上调整建堆:

介绍:

复杂度推导:

向下调整建堆:

介绍:

复杂度推导:


满二叉树与完全二叉树高度h和树中节点个数N的关系

向上调整算法:

介绍:

函数功能:将堆通过向上调整算法使堆成为小堆(父亲<孩子)或大堆(父亲>孩子),堆内父亲=(孩子-1)/2。只要孩子还在堆范围内,就不断判断孩子与父亲的关系。若想设置小堆,则孩子<父亲就执行交换;若想设置大堆,则孩子>父亲就执行交换。

函数参数:HeapDataType * a—>堆内数据类型首元素的指针  int child—>堆底元素(孩子)

函数返回值:

void AdjustUp(HeapDataType* a, int child)
{int parent = (child - 1) / 2;while (child > 0){if (a[child] > a[parent]){Swap(&a[child], &a[parent]);child = parent;parent = (child - 1) / 2;}else{break;}}
}

复杂度推导:

一次向上调整最多调整高度次数,根据满二叉树h=log(N+1),完全二叉树h=log(N)+1,而时间复杂度计算的是最大情况的数量级,所以一次向上调整的复杂度为O(logN)


向下调整算法:

介绍:

函数功能:将堆通过向下调整算法使堆成为小堆(父亲<孩子)或大堆(父亲>孩子),使用假设法先假定要交换的元素为左孩子,child=parent*2+1,若右孩子>左孩子,则需交换的元素为parent*2+1+1。只要孩子还在堆范围内,就不断判断孩子与父亲的关系。若想设置小堆,则孩子<父亲就执行交换;若想设置大堆,则孩子>父亲就执行交换。

函数参数:HeapDataType * a—>堆内数据类型首元素的指针  int n —>堆内元素个数          int parent—>堆顶元素(父亲)

函数返回值:

void Adjustdown(HeapDataType* a, int n, int parent)
{size_t child = parent * 2 + 1;while (child < n){if (child + 1 < n && a[child + 1] < a[child]){child++;}if (a[child] > a[parent]){Swap(&a[child], &a[parent]);parent = child;child = parent * 2 + 1;}else{break;}}
}

复杂度推导:

一次向下调整最多调整高度次数,根据满二叉树h=log(N+1),完全二叉树h=log(N)+1,而时间复杂度计算的是最大情况的数量级,所以一次向下调整的复杂度为O(logN)


向上调整建堆:

介绍:

前提:上几层都是堆

先将数组内所有元素插入堆结构内,再从第一个元素到最后一个元素进行遍历,对每个元素使用向上调整算法,使堆结构成为大堆/小堆

复杂度推导:


向下调整建堆:

介绍:

前提:左右子树都是堆

先将数组内所有元素插入堆结构内,再从最后一个父亲的位置到第一个父亲的位置进行遍历,对每个元素使用向下调整算法,使堆结构成为大堆/小堆

复杂度推导:

http://www.ds6.com.cn/news/13911.html

相关文章:

  • 如何查询网站所有人网络推广外包想手机蛙软件
  • 作文素材网页搜索优化seo
  • 网站服务器自己搭建推广衣服的软文
  • 醴陵网站建设软文营销成功案例
  • 服装网站的设计理念seo还有用吗
  • 江苏省昆山市网站制作广州网站优化推广方案
  • 深圳网站设计公司行业济宁百度推广价格
  • 深圳网站建设价格多少汕头seo网站建设
  • dedecms双语网站百度seo排名工具
  • 软件商城有哪些seo软件开发
  • 磁力链接 网站怎么做的西安seo外包
  • 网站开发编程河北疫情最新情况
  • 触屏版网站开发样式百度快照查询
  • 天猫商城商品来源南通seo网站优化软件
  • 电商网站html模板下载网站推广优化排名seo
  • 可靠的东莞网站推广灰色词排名代做
  • 泰安网站建设最好app推广代理
  • 网站建设会用什么软件有哪些seo网络推广是什么意思
  • java做网站导航栏seo推广教程
  • html代码入门基础深圳网站关键词优化推广
  • 新沂网站设计seo是什么的缩写
  • 网站页面高度网络宣传
  • dedecms新网站 上传到万网的空间做企业推广的公司
  • 代做毕设的网站网站优化入门免费教程
  • 室外建筑网站涟源网站seo
  • 青岛 建网站关键词排名优化教程
  • 山东郓城住房和城乡建设厅网站一个免费的网站
  • WordPress 附件上传优化一个网站需要多少钱
  • 网站建设 网络推广市场营销专业
  • 长沙网站seo多少钱泾县网站seo优化排名