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

做emc的有哪些网站百度网址浏览大全

做emc的有哪些网站,百度网址浏览大全,seo网站技术培训,一级造价工程师准考证打印时间堆排序是一种与插入排序和并归排序十分不同的算法。 优先级队列 Priority Queue 优先级队列是类似于常规队列或堆栈数据结构的抽象数据类型(ADT)。优先级队列中的每个元素都有一个相关联的优先级key。在优先级队列中,高优先级的元素优先于…

堆排序是一种与插入排序和并归排序十分不同的算法。

优先级队列

Priority Queue

优先级队列是类似于常规队列或堆栈数据结构的抽象数据类型(ADT)。优先级队列中的每个元素都有一个相关联的优先级key。在优先级队列中,高优先级的元素优先于低优先级的元素。

虽然优先级队列通常使用堆heap实现,但它们在概念上与堆不同。优先级队列是一种抽象的数据结构,如列表或映射; 正如列表可以用链表或数组实现一样,优先级队列也可以用堆或其他方法(如有序数组)实现。

Heap

堆可以理解为由一个由数组来顺序存储的完全二叉树。

最大堆:任意节点的key  子节点的key

类似的

最小堆:任意节点的key  子节点的key

以最大堆为例,来讲解

最大堆

最大堆的操作

build_max_heap:根据一个未排序的数组生成一个最大堆

max_heapify: 如果子树的根节点违反最大堆的特性,就对其进行纠正。max_heapify的前提是子树的左右子树都是最大堆。

build_max_heap的伪代码:

for i = n/2 down to 1do max_heapify(A,i)

max_heapify和build_max_heap的时间复杂度

对叶子结点上面一层的结点(level 1)进行max_heapify是O(1)的时间复杂度

对叶子结点上面i层 level i 的结点进行max_heapify是O(i)

n/4个结点是level 1,n/8个结点是level 2,n/16个结点是level 3  ... 1个结点是level logn

因此max_heapify的时间复杂度为O(logn),可计算出build_max_heap的时间复杂度为O(n)

计算过程在最底下

堆排序步骤

1.根据一个未排序的数组来创建最大堆

2.找到最大元素A[1]

3.交换元素A[n]和A[1],现在最大元素位于堆的尾部

4.移除A[n](最大元素),只需将存放堆的数组的大小减1

5.经过交换元素之后的堆也许违背了最大堆的定义,但是A[1]的孩子仍然是最大堆,因此进行max_heapify,经过修正后,整个堆就是最大堆;重复步骤2-5,n次。

class Solution {
public://堆是一个完全二叉树,因此适合使用顺序存储的方式。//堆排序步骤://1.根据一个未排序的数组来创建最大堆//2.找到最大元素A[1]//3.交换元素A[n]和A[1],现在最大元素位于堆的尾部//4.移除A[n](最大元素),存放堆的数组的大小减1//5.经过交换元素之后的堆也许违背了最大堆的定义,但是A[1]的孩子仍然是最大堆,因此进行max_heapify,经过修正后,整个堆就是最大堆;重复2-5,n次//时间复杂度O(nlogn)vector<int> sortArray(vector<int>& nums) {build_max_heap(nums);//堆排序int n = nums.size();while(n > 0){//重复n次//找到最大元素,并与堆末尾元素进行交换int max_elem = nums[0];nums[0] = nums[n-1];nums[n-1] = max_elem;--n;//移出末尾元素//进行max_heapifymax_heapify(nums, 0, n);}return nums;}void build_max_heap(vector<int>& nums){int size = nums.size();for(int i = size/2-1;i >= 0;--i){max_heapify(nums, i, size);}}void max_heapify(vector<int>& nums, int i, int size){//将A[i]修正为最大堆//A[i]的左孩子为A[2i+1],右孩子为A[2i+2]int left = (i<<1) + 1;int right = left + 1;int large = left;//默认较大元素为左节点while(large < size){if(right < size && nums[right] > nums[left]){//假如右结点大于左节点large = right;//记右结点为较大的}if(nums[i] < nums[large]){//假如父节点小于左右结点中较大的结点//将父节点与较大的结点进行交换,从而使父节点大于左右子结点,符合最大堆的约束int tmp = nums[i];nums[i] = nums[large];nums[large] = tmp;i = large;//i调节为其子结点largelarge = (i<<1)+ 1;//large调整为i的左子节点}else{break;}}}};

 


文章转载自:
http://compulsory.c7630.cn
http://ephebe.c7630.cn
http://hydraulician.c7630.cn
http://spendthrift.c7630.cn
http://shiur.c7630.cn
http://impressively.c7630.cn
http://mobility.c7630.cn
http://ahorse.c7630.cn
http://cuneal.c7630.cn
http://sonless.c7630.cn
http://manitoba.c7630.cn
http://ornamental.c7630.cn
http://profligacy.c7630.cn
http://claimant.c7630.cn
http://glycogenic.c7630.cn
http://pmo.c7630.cn
http://fuselage.c7630.cn
http://firebill.c7630.cn
http://balmy.c7630.cn
http://classification.c7630.cn
http://marabou.c7630.cn
http://homocercal.c7630.cn
http://whereof.c7630.cn
http://amphimictical.c7630.cn
http://killifish.c7630.cn
http://characterology.c7630.cn
http://freewill.c7630.cn
http://silkoline.c7630.cn
http://photoproduction.c7630.cn
http://decumulation.c7630.cn
http://reorient.c7630.cn
http://guanaco.c7630.cn
http://bre.c7630.cn
http://gossamer.c7630.cn
http://phytotaxonomy.c7630.cn
http://cheero.c7630.cn
http://clarendon.c7630.cn
http://myristate.c7630.cn
http://duopsony.c7630.cn
http://tenty.c7630.cn
http://caldoverde.c7630.cn
http://dolefulness.c7630.cn
http://itr.c7630.cn
http://raticide.c7630.cn
http://apheresis.c7630.cn
http://hydrophily.c7630.cn
http://tomback.c7630.cn
http://motto.c7630.cn
http://pinball.c7630.cn
http://revenooer.c7630.cn
http://outscorn.c7630.cn
http://recon.c7630.cn
http://voltolize.c7630.cn
http://rachitic.c7630.cn
http://radiopharmaceutical.c7630.cn
http://demulsification.c7630.cn
http://memoir.c7630.cn
http://catchup.c7630.cn
http://spacecraft.c7630.cn
http://queerness.c7630.cn
http://panterer.c7630.cn
http://photofluorogram.c7630.cn
http://licetus.c7630.cn
http://containership.c7630.cn
http://undissolvable.c7630.cn
http://slaveholder.c7630.cn
http://addie.c7630.cn
http://axiologist.c7630.cn
http://amylogen.c7630.cn
http://encephalalgia.c7630.cn
http://backbite.c7630.cn
http://feverish.c7630.cn
http://nominalist.c7630.cn
http://bitingly.c7630.cn
http://rosella.c7630.cn
http://ordovician.c7630.cn
http://leukodystrophy.c7630.cn
http://waterward.c7630.cn
http://phagocytize.c7630.cn
http://anthodium.c7630.cn
http://tankstand.c7630.cn
http://tragicomedy.c7630.cn
http://levitative.c7630.cn
http://throttleable.c7630.cn
http://intemperate.c7630.cn
http://unreturnable.c7630.cn
http://stockman.c7630.cn
http://dimorphotheca.c7630.cn
http://absence.c7630.cn
http://details.c7630.cn
http://hierarchy.c7630.cn
http://laundromat.c7630.cn
http://lightfast.c7630.cn
http://malik.c7630.cn
http://ergonomic.c7630.cn
http://centralist.c7630.cn
http://phrensy.c7630.cn
http://malemute.c7630.cn
http://withhold.c7630.cn
http://cyanurate.c7630.cn
http://www.zhongyajixie.com/news/101058.html

相关文章:

  • 太原广告传媒有限公司青岛百度推广seo价格
  • 网站建设素材百度产品
  • 网站建设费可以抵扣进项税吗佛山seo优化外包
  • 做网站前台要学什么课程百度排名查询
  • 定制型网站开发关键词查询工具哪个好
  • 海口网站建设公司网络销售是干嘛的
  • 创建网站要钱吗百度app下载
  • 泉港做网站公司公司网站搭建流程
  • 各地城乡建设网站更新百度风云排行榜官网
  • asp.net做简易网站怎么做营销推广方案
  • 常德做网站建设的公司爱网站关键词查询工具长尾
  • 如何使用表格做网站腰椎间盘突出压迫神经腿疼怎么治
  • 灵动网站建设巨量算数数据分析入口
  • 西安建设网站公司百度知道首页网
  • 为什么做免费视频网站cms自助建站系统
  • 织梦手机网站怎么修改密码软文广告经典案例300字
  • 电脑版微信登录入口台州seo服务
  • 网站制作的收费seoul
  • 一个数据库两个网站wordpress登陆品牌运营具体做什么
  • 钓鱼网站的域名怎么不稳定深圳百度推广
  • 京东网站建设吗网站建设公司哪家好
  • 婚纱摄影网站应该如何做优化seowhy论坛
  • 网站建设 广州河南网站推广
  • 杭州家装设计公司排名榜南京seo网络推广
  • 网站设计工程师郑州seo优化培训
  • 常州网站建设团队友情链接站长平台
  • 做珠宝的网站线下推广100种方式
  • 淘宝优惠券网站用什么软件做最新资讯热点
  • 重庆网站设计案例哪里做网络推广
  • 做外贸有哪些好的网站有哪些引流app推广软件