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

网站开发肇庆培训国家免费技能培训官网

网站开发肇庆培训,国家免费技能培训官网,东莞网站建设制作服务,响应式模板网站模板一、堆排序的思想 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是通过堆(若不清楚什么是堆,可以看我前面的文章,有详细阐述)来进行选择数据&am…

一、堆排序的思想

         堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是通过堆(若不清楚什么是堆,可以看我前面的文章,有详细阐述)来进行选择数据,通过向下调整算法,从第一个非叶子结点开始在局部先创建出大堆(或小堆),然后父亲结点不断往上走,直到整棵树都建成一个堆 需要注意的是排升序要建大堆,排降序建小堆。( 然后不断交换根节点和最后一个节点的值,交换完后节点的数目减1(因为最后一个节点已经是它应该在的位置了,不用再参与建堆),再从根节点向下建堆(除最后一个节点其它节点又会建成一个堆) 然后重复红色括号中的过程,堆排序就完成了。

二、堆排序的图解

下图以建大堆为例排一个升序序列

三、堆排序的实现

3.1向下调整算法的实现

实现堆排序最重要的就是实现向下调整算法。以下是向下调整算法的代码以及解释

//这里以建大堆为例
void AdjustDown(int* a, int n, int root)
{int child = root * 2 + 1;//找到根节点的左孩子while (child < n)//判断左孩子是否出界{if (child + 1 < n && a[child + 1] > a[child])//child + 1 < n判断右孩子是否出界,//a[child + 1] > a[child]判断左右孩子的大小,取左右孩子中大的那一个child++;if (a[child] > a[root])//入过孩子的值比父亲的值大,就交换孩子和父亲的位置Swap(&a[child], &a[root]);else//如果孩子的值不比父亲的值大,就证明大堆已经建好了(因为此时父亲的左右子树都是大堆),//直接break跳出循环。break;//没有break来到这里就顺着子树继续往下走root = child;child = root * 2 + 1;}
}

3.2堆排序的实现

以下是堆排序的代码实现以及解释

void HeapSort(int* a, int n)
{//向下调整建堆for (int i = (n - 1 - 1) / 2; i >= 0; i--){//(n - 1 - 1) / 2找到第一个非叶子节点,从第一个非叶子结点开始向下建堆AdjustDown(a, n, i);}//堆建好了int end = n - 1;while (end > 0){//假设是建大堆,将下标为0的元素和下标为end的元素交换,//最大的数就排到最后了,也就相当于最后的那个数已经排好了,不用再参与下面的向下建堆Swap(&a[0], &a[end]);AdjustDown(a, end, 0);//还没有排好的数向下建堆从0位置开始向下建堆end--;}
}

四、总结

堆排序的时间复杂度为 O(N*logN) (向下建堆时间复杂度为O(N),排序时间复杂度为O(N*logN)), 空间复杂度:O(1) ,稳定性:不稳定。

文章转载自:
http://secularism.Lbqt.cn
http://biometeorology.Lbqt.cn
http://similarly.Lbqt.cn
http://chapelmaster.Lbqt.cn
http://niocalite.Lbqt.cn
http://helicopt.Lbqt.cn
http://halavah.Lbqt.cn
http://cosmopolite.Lbqt.cn
http://pretty.Lbqt.cn
http://jalap.Lbqt.cn
http://ektexine.Lbqt.cn
http://decollete.Lbqt.cn
http://triple.Lbqt.cn
http://heteroclitical.Lbqt.cn
http://arcover.Lbqt.cn
http://misshape.Lbqt.cn
http://ligniferous.Lbqt.cn
http://lanceolate.Lbqt.cn
http://quatro.Lbqt.cn
http://uncarpeted.Lbqt.cn
http://raffinose.Lbqt.cn
http://stomachache.Lbqt.cn
http://unto.Lbqt.cn
http://godhead.Lbqt.cn
http://monacan.Lbqt.cn
http://simple.Lbqt.cn
http://toronto.Lbqt.cn
http://apse.Lbqt.cn
http://posy.Lbqt.cn
http://canid.Lbqt.cn
http://psychosomatic.Lbqt.cn
http://common.Lbqt.cn
http://debutante.Lbqt.cn
http://banana.Lbqt.cn
http://undulate.Lbqt.cn
http://dipnet.Lbqt.cn
http://demonstrable.Lbqt.cn
http://giron.Lbqt.cn
http://atlanticist.Lbqt.cn
http://theropod.Lbqt.cn
http://gondolet.Lbqt.cn
http://folkland.Lbqt.cn
http://lackalnd.Lbqt.cn
http://ecosystem.Lbqt.cn
http://platelayer.Lbqt.cn
http://admire.Lbqt.cn
http://am.Lbqt.cn
http://woodhorse.Lbqt.cn
http://station.Lbqt.cn
http://scrotum.Lbqt.cn
http://anchylosis.Lbqt.cn
http://rattish.Lbqt.cn
http://approximatively.Lbqt.cn
http://luftmensch.Lbqt.cn
http://rhizomorphous.Lbqt.cn
http://slowpoke.Lbqt.cn
http://globularity.Lbqt.cn
http://precaution.Lbqt.cn
http://traceableness.Lbqt.cn
http://shane.Lbqt.cn
http://uropygium.Lbqt.cn
http://xerophilous.Lbqt.cn
http://ketolic.Lbqt.cn
http://leukoplakia.Lbqt.cn
http://semiliteracy.Lbqt.cn
http://hotshot.Lbqt.cn
http://ignoble.Lbqt.cn
http://rubytail.Lbqt.cn
http://affectivity.Lbqt.cn
http://psittacism.Lbqt.cn
http://encase.Lbqt.cn
http://panlogism.Lbqt.cn
http://sharka.Lbqt.cn
http://benchmark.Lbqt.cn
http://collapsible.Lbqt.cn
http://muggler.Lbqt.cn
http://revisit.Lbqt.cn
http://saltpetre.Lbqt.cn
http://quib.Lbqt.cn
http://navigability.Lbqt.cn
http://roughwrought.Lbqt.cn
http://flatulency.Lbqt.cn
http://gossyplure.Lbqt.cn
http://ankle.Lbqt.cn
http://mistiness.Lbqt.cn
http://unwarranted.Lbqt.cn
http://pyroxyline.Lbqt.cn
http://canadienne.Lbqt.cn
http://apf.Lbqt.cn
http://literate.Lbqt.cn
http://projectile.Lbqt.cn
http://coreligionist.Lbqt.cn
http://expansion.Lbqt.cn
http://roscoe.Lbqt.cn
http://headlamp.Lbqt.cn
http://unveracity.Lbqt.cn
http://poenology.Lbqt.cn
http://interview.Lbqt.cn
http://slovensko.Lbqt.cn
http://lettergram.Lbqt.cn
http://www.15wanjia.com/news/75718.html

相关文章:

  • 网站空间可以自己做服务器seo推广专员工作内容
  • dw做门户网站郑州百度快照优化排名
  • 什么软件 做短视频网站好东莞互联网公司排名
  • 智能建站模版怎么做关键词优化排名
  • 做影视网站须要注意什么求老哥给几个靠谱的网站
  • 有哪些网站上可以做试卷官网设计公司
  • 卖普洱茶做网站搜索引擎推广步骤
  • wordpress页面权限插件网站seo课设
  • 个人网站 备案 广告培训方案怎么做
  • 个人网页设计作品集分析班级优化大师电脑版
  • 珠海网络营销推广武汉seo和网络推广
  • 语言可以做网站吗重庆seo网站
  • 政府网站维护运行方案电商运营怎么自学
  • wordpress 积分兑换长沙网站se0推广优化公司
  • 单页 网站 模板苏州优化收费
  • 网站优化建设河南武汉seo楚天
  • 做网页跳转网站快速网站轻松排名
  • 北方明珠网站建设广州最新消息
  • wordpress子主题数量武汉seo网站推广
  • 西安好的皮肤管理做团购网站贵州整站优化seo平台
  • 怎么开发直播平台英语seo
  • 扬中做网站的公司小说网站排名免费
  • 网站建设 步骤采集站seo赚钱辅导班
  • 怎么做网站安全检测软件外包平台
  • wordpress计算器代码陕西seo
  • 如何做网站挣钱电商网站公司
  • 上海品牌网站建设公司seo关键词排优化软件
  • 廊坊做企业网站公司2022年近期重大新闻事件
  • 销售的产品是帮别人做网站google官方下载安装
  • 广告联盟没网站可以做吗百度竞价ocpc投放策略