最大最小堆是一种基于完全二叉树的数据结构,它的特点是每个节点的值都大于等于(最大堆)或小于等于(最小堆)其子节点的值。

插入新节点:

  1. 将新节点插入到堆底最后一个位置。
  2. 将新节点与其父节点比较,如果不符合最大最小堆的性质,则交换两个节点的值。
  3. 重复执行步骤2,直到新节点满足最大最小堆的性质或者到达堆顶。

时间复杂度为O(log n),其中n为堆中节点数目。

删除节点:

  1. 将要删除的节点与堆底最后一个节点交换。
  2. 删除堆底最后一个节点。
  3. 将新的堆顶节点与其子节点比较,如果不符合最大最小堆的性质,则与其子节点中较大或较小的节点交换。
  4. 重复执行步骤3,直到新的堆顶节点满足最大最小堆的性质或者到达堆底。

时间复杂度为O(log n),其中n为堆中节点数目。

最大最小堆怎么删除和插入新的节点?时间复杂度是多少?

原文地址: https://www.cveoy.top/t/topic/bar1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录