• 堆排序


    则堆实质上是满足如下性质的完全二叉树:注意:①堆中任一子树亦是堆。②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。
    注意:①堆中任一子树亦是堆。②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。
    注意:①堆中任一子树亦是堆。②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。
    定义堆的高度为树根的高度。我们将看到,堆结构上的一些基本操作的运行时间至多是与树的高度成正比,为O(lgn)。
    定义堆的高度为树根的高度。我们将看到,堆结构上的一些基本操作的运行时间至多是与树的高度成正比,为O(lgn)。
    树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。
    则堆实质上是满足如下性质的完全二叉树:
    注意:①堆中任一子树亦是堆。注意:①堆中任一子树亦是堆。
    树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。
    则堆实质上是满足如下性质的完全二叉树:②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。
    树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。
    则堆实质上是满足如下性质的完全二叉树:
    树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。

    堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。

    n个关键字序列Kl,K2,…,Kn称为(Heap),当且仅当该序列满足如下性质(简称为堆性质):
    (1)ki<=k(2i)且ki<=k(2i+1)(1≤i≤ n/2),当然,这是小根堆,大根堆则换成>=号(2)ki>=k(2i)且ki>=k(2i+1)(1≤i≤ n/2)。//k(i)相当于二叉树的非叶子结点,K(2i)则是左子节点,k(2i+1)是右子节点
     
    大根堆和小根堆:根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆,又称最小堆。根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆,又称最大堆。注意:①堆中任一子树亦是堆。②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。
  • 相关阅读:
    WPF 中 TextBlock 文本换行与行间距
    WPF中TextBox文件拖放问题
    WPF 自定义鼠标光标
    矩形覆盖
    跳台阶和变态跳台阶
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    替换空格
    斐波那契数列
  • 原文地址:https://www.cnblogs.com/panxuejun/p/8855734.html
Copyright © 2020-2023  润新知