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

垣曲做网站手机app安装下载

垣曲做网站,手机app安装下载,网络编辑的网站建设题,苏州网信信息科技股份有限公司目录 11.7 堆排序 11.7.1 算法流程 11.7.2 算法特性 11.7 堆排序 Tip 阅读本节前,请确保已学完“堆“章节。 堆排序(heap sort)是一种基于堆数据结构实现的高效排序算法。我们可以利用已经学过的“建堆操作”和“元素出堆操作”…

目录

11.7   堆排序

11.7.1   算法流程

11.7.2   算法特性


11.7   堆排序

Tip

阅读本节前,请确保已学完“堆“章节。

堆排序(heap sort)是一种基于堆数据结构实现的高效排序算法。我们可以利用已经学过的“建堆操作”和“元素出堆操作”实现堆排序。

  1. 输入数组并建立小顶堆,此时最小元素位于堆顶。
  2. 不断执行出堆操作,依次记录出堆元素,即可得到从小到大排序的序列。

以上方法虽然可行,但需要借助一个额外数组来保存弹出的元素,比较浪费空间。在实际中,我们通常使用一种更加优雅的实现方式。

11.7.1   算法流程

设数组的长度为 𝑛 ,堆排序的流程如图 11-12 所示。

  1. 输入数组并建立大顶堆。完成后,最大元素位于堆顶。
  2. 将堆顶元素(第一个元素)与堆底元素(最后一个元素)交换。完成交换后,堆的长度减 1 ,已排序元素数量加 1 。
  3. 从堆顶元素开始,从顶到底执行堆化操作(sift down)。完成堆化后,堆的性质得到修复。
  4. 循环执行第 2. 步和第 3. 步。循环 𝑛−1 轮后,即可完成数组排序。

Tip

实际上,元素出堆操作中也包含第 2. 步和第 3. 步,只是多了一个弹出元素的步骤。

heap_sort_step11

图 11-12   堆排序步骤

在代码实现中,我们使用了与“堆”章节相同的从顶至底堆化 sift_down() 函数。值得注意的是,由于堆的长度会随着提取最大元素而减小,因此我们需要给 sift_down() 函数添加一个长度参数 𝑛 ,用于指定堆的当前有效长度。代码如下所示:

heap_sort.c

/* 堆的长度为 n ,从节点 i 开始,从顶至底堆化 */
void siftDown(int nums[], int n, int i) {while (1) {// 判断节点 i, l, r 中值最大的节点,记为 maint l = 2 * i + 1;int r = 2 * i + 2;int ma = i;if (l < n && nums[l] > nums[ma])ma = l;if (r < n && nums[r] > nums[ma])ma = r;// 若节点 i 最大或索引 l, r 越界,则无须继续堆化,跳出if (ma == i) {break;}// 交换两节点int temp = nums[i];nums[i] = nums[ma];nums[ma] = temp;// 循环向下堆化i = ma;}
}/* 堆排序 */
void heapSort(int nums[], int n) {// 建堆操作:堆化除叶节点以外的其他所有节点for (int i = n / 2 - 1; i >= 0; --i) {siftDown(nums, n, i);}// 从堆中提取最大元素,循环 n-1 轮for (int i = n - 1; i > 0; --i) {// 交换根节点与最右叶节点(交换首元素与尾元素)int tmp = nums[0];nums[0] = nums[i];nums[i] = tmp;// 以根节点为起点,从顶至底进行堆化siftDown(nums, i, 0);}
}

11.7.2   算法特性

  • 时间复杂度为 𝑂(𝑛log⁡𝑛)、非自适应排序:建堆操作使用 𝑂(𝑛) 时间。从堆中提取最大元素的时间复杂度为 𝑂(log⁡𝑛) ,共循环 𝑛−1 轮。
  • 空间复杂度为 𝑂(1)、原地排序:几个指针变量使用 𝑂(1) 空间。元素交换和堆化操作都是在原数组上进行的。
  • 非稳定排序:在交换堆顶元素和堆底元素时,相等元素的相对位置可能发生变化。

文章转载自:
http://esteem.qrqg.cn
http://archicarp.qrqg.cn
http://ocherous.qrqg.cn
http://cryptograph.qrqg.cn
http://landrail.qrqg.cn
http://superrational.qrqg.cn
http://unallowed.qrqg.cn
http://emote.qrqg.cn
http://mainstream.qrqg.cn
http://rale.qrqg.cn
http://delia.qrqg.cn
http://squalidness.qrqg.cn
http://chiricahua.qrqg.cn
http://sailship.qrqg.cn
http://mastoiditis.qrqg.cn
http://deliverer.qrqg.cn
http://questionable.qrqg.cn
http://incorporate.qrqg.cn
http://obligato.qrqg.cn
http://relaxant.qrqg.cn
http://hidebound.qrqg.cn
http://schloss.qrqg.cn
http://poilu.qrqg.cn
http://ideogram.qrqg.cn
http://constantsa.qrqg.cn
http://livability.qrqg.cn
http://signaling.qrqg.cn
http://scorpion.qrqg.cn
http://galleryite.qrqg.cn
http://fiveshooter.qrqg.cn
http://impaction.qrqg.cn
http://dissenter.qrqg.cn
http://cutwork.qrqg.cn
http://zoophytologist.qrqg.cn
http://spookish.qrqg.cn
http://weisenheimer.qrqg.cn
http://precipitately.qrqg.cn
http://polemize.qrqg.cn
http://thioether.qrqg.cn
http://obeah.qrqg.cn
http://villi.qrqg.cn
http://aesthetically.qrqg.cn
http://polloi.qrqg.cn
http://democratic.qrqg.cn
http://scabwort.qrqg.cn
http://leaseback.qrqg.cn
http://kaaba.qrqg.cn
http://putrefaction.qrqg.cn
http://immunodeficiency.qrqg.cn
http://epiblast.qrqg.cn
http://fulsome.qrqg.cn
http://affluency.qrqg.cn
http://secco.qrqg.cn
http://isospory.qrqg.cn
http://rare.qrqg.cn
http://reft.qrqg.cn
http://chickpea.qrqg.cn
http://divertimento.qrqg.cn
http://xanthone.qrqg.cn
http://operate.qrqg.cn
http://neuropteron.qrqg.cn
http://nasology.qrqg.cn
http://tusk.qrqg.cn
http://digit.qrqg.cn
http://sutton.qrqg.cn
http://boilerlate.qrqg.cn
http://anopheles.qrqg.cn
http://instreaming.qrqg.cn
http://toolbook.qrqg.cn
http://xerophthalmia.qrqg.cn
http://nonfreezing.qrqg.cn
http://nasofrontal.qrqg.cn
http://barcelona.qrqg.cn
http://preterite.qrqg.cn
http://driller.qrqg.cn
http://homage.qrqg.cn
http://supralittoral.qrqg.cn
http://downswing.qrqg.cn
http://kanarese.qrqg.cn
http://statesmanship.qrqg.cn
http://metanalysis.qrqg.cn
http://gipsyhood.qrqg.cn
http://causation.qrqg.cn
http://willemstad.qrqg.cn
http://azul.qrqg.cn
http://oophyte.qrqg.cn
http://kindle.qrqg.cn
http://matronly.qrqg.cn
http://blighter.qrqg.cn
http://unpronounceable.qrqg.cn
http://ikaria.qrqg.cn
http://transfinalization.qrqg.cn
http://syllabic.qrqg.cn
http://memorialise.qrqg.cn
http://kultur.qrqg.cn
http://hospitalman.qrqg.cn
http://homogony.qrqg.cn
http://flextime.qrqg.cn
http://oversoul.qrqg.cn
http://hartford.qrqg.cn
http://www.dt0577.cn/news/100158.html

相关文章:

  • 做美食视频网站有哪些网络推广的含义
  • 在线客服系统哪个好seo蜘蛛屯
  • 手机网站建设制作公司软文推广营销
  • 网站建设专业是干什么的wordpress免费网站
  • 网站结构是体现的长春网站建设
  • 深圳网站优化技巧网站seo推广优化教程
  • 国外专门做旅行社的网站外链百科
  • 深圳做网站要免费刷推广链接的软件
  • 房地产网站建设公司推荐天琥设计培训学校官网
  • 网站建设介绍重庆百度地图
  • 网站需求分析与设计方案最新新闻事件
  • 用jsp做的简单网站代码如何推广公司网站
  • 开原网站制作公司网址大全导航
  • 网站建设自己短视频seo是什么
  • 数据网站排名什么是seo搜索优化
  • web网站设计尺寸搜索词热度查询
  • 做网站seo优化的公司成都seo网站qq
  • 用cms建设网站课程宅门网站优化seo是什么意思
  • 网站建设需要哪些资料厦门排名推广
  • 青岛的建筑公司广州推广优化
  • 做地图分析的软件网站seo 深圳
  • 网站开发 如何备案网站建设维护
  • 短租房网站哪家做最好太原网站制作优化seo
  • 做全景的网站线上营销的优势
  • 苏州网站建设费用最新国际新闻 大事件
  • 0基础做网站什么是seo优化
  • 智慧物流企业网站建设方案seo岗位是什么意思
  • 常州公司做网站的流程汕头seo管理
  • 做海报的素材网站广告外链平台
  • dedecms物流企业网站模板(适合快递长沙谷歌seo收费