python每日算法 | 图文+“农村包围城市”详解堆排序,手把手学会

本文详细介绍了堆排序的原理和过程,包括树的概念、二叉树、堆的构造和调整,以及如何使用Python实现堆排序。堆排序时间复杂度为O(nlogn),并可用于解决TopK问题。文章还对比了堆排序与其他排序算法的效率,并提供了Python代码示例。
摘要由CSDN通过智能技术生成

  创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜    


前言

程序=数据结构+算法,算法是数学理论和工程实现的杂糅,是一个十分有趣神奇的学问。搞懂算法用另一种视角看编程,又会是一种全新的感受,如果你也在学习算法,不妨跟主任萌新超差一起学习,拿下算法!


系列文章目录

python每日算法 | 图文结合详解快速排序,手撕快排代码!

python每日算法 | 图文挑战十大排序算法DAY1,再也不用担心面试官问冒泡、选择、插入排序!

python每日算法 | 实现四大查找算法,生动形象,保证一看就会!


概述

本期的内容将介绍十大排序算法之堆排序,通过本期内容你不仅能知道代码堆排序如何用python实现,还将学会使用堆排序模块以及用堆排序解决topk问题等等!再也不用担心面试官问堆排序是什么啦! 


目录

前言

系列文章目录

概述

超超python每日算法思维导图

堆排序

了解树

关于树的⼀些概念

了解二叉树

什么是堆

堆的向下调整性质

堆的构造

  堆排序的过程

实现堆排序的算法

python中堆排序的内置模块

堆排序时间复杂度

堆排序解决topk问题

十大排序之五大排序总结


超超python每日算法思维导图

堆排序

了解树

树是一种可以递归定义的数据结构,树结构是递归定义的,树是由n个节点组成的集合:

如果n=0,那这是⼀一棵空树;

如果n>0,那存在1个节点作为树的根节点,其他节点可以分为m个集合,每个集合本身又是一棵树。

关于树的⼀些概念

根节点:一棵树中,没有双亲结点的结点,例如图中的A

节点的度:一个节点含有的子树的个数称为该节点的度,例如D节点的度为1(H),E节点的度为2(I,J)

树的度:一棵树中,最大的节点的度称为树的度,例如图片中树的度为A节点的6

树的高度或深度:树中节点的最大层次,图片的高度位4

叶子节点或终端节点:度为0的节点称为叶节点;即不能分叉的点,例如B、C、H、I、P等

双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点,E是I的父节点

孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点,I是E的孩子节点

节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推

森林:由m(m>=0)棵互不相交的树的集合称为森林

了解二叉树

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chaochao️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值