美文网首页
算法之堆排序

算法之堆排序

作者: 小玲阿Q | 来源:发表于2020-05-14 22:37 被阅读0次

痛定思痛,终于决定花半年时间深入学习技术面试题,为明年的跳槽作准备。以后会把比较重要且深刻掌握的知识点记录下来,加深理解及方便学习。

今天整理的算法是堆排序,这是我花费了一天的时间才吸收到的精华。下面按照我的理解整理了堆排序的算法思想。希望能让大家一目了然。

第一:给出一个无序队列或者数组

第二:建堆---把无序数组变为大根堆或者小根堆(大根堆:父节点的值大于任意子节点的值;小根堆:父节点的值小于子节点的值)以下按照建大根堆思想描述

1.从最后一个有子节点的父节点开始调整,此处的索引值为i=n/2-1

2.比较此处父节点和子节点的值大小,把最大值的节点调整值父节点

3.依次i--找出歌父节点和相应子节点的最大值,并把最大值调整至顶堆

4.经过上面的处理后就形成了一个大根堆,最大值在顶堆

第三:顶堆和最后一个子节点交接,再从堆中剔除最后一个子节点

第四:依次比较剔除后的堆中的父节点和子节点的最大值,交换位置,把最大值调整至顶堆

第五:循环第三和第四的步骤,最后输出一个小根堆,即按照从小到大的顺序

由于时间问题来不及画图,明天会增加图纸说明方便读懂

相关文章

  • 堆排序

    转载:图解排序算法(三)之堆排序 预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选...

  • iOS算法总结-堆排序

    iOS算法总结-堆排序 iOS算法总结-堆排序

  • 3.11 堆的概念及堆排序思路

    Chapter3: 更好的查找与排序算法 11. 堆的概念及堆排序 [1] 图解排序算法(三)之堆排序 讲得很好,...

  • 2018-06-30

    排序算法之堆排序 堆排序是利用堆的数据结构而设计的一种排序算法,堆排序是一种选择排序。可以利用数组的特点快速定位制...

  • 3.2-选择排序-堆排序

    参考链接 选择排序:堆排序(Heap Sort) 白话经典算法系列之七 堆与堆排序 堆排序与快速排序,归并排序一样...

  • 数据结构与算法

    常见排序算法 堆排序 算法大全 算法大汇总

  • 堆排序算法思想

    前两天看了看堆排序算法,啃了半天的书,最后搞明白了堆排序算法,今天有时间给大家说说这个堆排序算法。首先讲一下算法的...

  • 排序算法-堆排序

    参考: Java排序算法(五):堆排序 【算法与数据结构】图说堆排序 【数据结构】排序算法:希尔、归并、快速、堆排...

  • 常用排序算法之堆排序

    堆排序算法 运行 输出

  • 排序算法之5:堆排序 HeapSort

    研究了半天,一步一步试验DEBU,才明白堆排序的原理,整理记录一下;相关参考:排序算法之堆排序(Heapsort)...

网友评论

      本文标题:算法之堆排序

      本文链接:https://www.haomeiwen.com/subject/kwzxohtx.html