• 20162328蔡文琛 week09 大二


    20162328蔡文琛 大二week09

    教材学习内容总结

    堆是一棵完全二叉树,其中每个元素大于等于其所有子节点的值。
    向堆中添加一个元素的方法是,首先将这个元素添加为叶节点然后将其向上移动到合适的位置。
    从堆中删除最大元素的方法是,利用最后的叶节点来取代根,然后将其向下移动到合适的位置。
    堆是一棵完全二叉树,其中每个元素大于等于其所有子节点的值。 向堆中添加一个元素的方法是,首先将这个元素添加为叶节点然后将其向上移动到合适的位置。 从堆中删除最大元素的方法是,利用最后的叶节点来取代根,然后将其向下移动到合适的位置。 堆排序利用堆的基本特性对异族元素进行排序。 优先队列不是FIFO队列。它根据优先级排列元素,而不是根据它们进入队列的次序来排列 二叉查找树和堆都是越输了元素之间关系的二叉树。二叉查找树中的结点大于他的左节点,并小于等于它的右子节点,而(最大)堆中的节点大于等于他的两个子节点。
    最小堆中数的最小值在树的根,而最大堆中最大值在根。所以,他们的策略和实现机制都是类似的。
    将元素作为新的叶节点添加到堆中,然后让它在树中向上移动到与其他元素的大小先对合适的位置。
    在(最大)堆中,用树的最后叶节点体换根,然后将该元素向下移动到与其他元素大小合适的位置,从而删除最大元素。
    堆排序是一种排序算法,他先将数据添加到堆中,然后按排序的次序删除他们。
    优先队列是一个队列,其元素按指定的优先级来排序,优先级相同时,按出现的先后次序排序。

    教材学习中的问题和解决过程

    问题:还是不太理解优先队列的概念。
    解决:
    优先队列是一种用来维护由一组元素构成的集合S的数据结构,其中的每一个元素都有一个相关的值,称为关键字。优先队列也分为两种:最大优先队列和最小优先队列。
         一个最大优先队列支持以下操作:
    •INSERT(S,x):把元素x插入集合S中;
    •MAXIMUM(S):返回S中具有最大关键字的元素;
    •EXTRACT_MAX(S):去掉并且返回S中的具有最大关键字的元素;
    •INCREASE_KEY(S,x,k):将元素x的关键字值增加到k。
    相应地,最小优先队列支持的操作包括INSERT、MINIMUM、EXTRAT_MIN和DECRESE_KEY。

    [代码托管] (https://gitee.com/pdds2017/cwc20162328_JavaFoundations2nd/tree/master/src/FourArithmeticOperations)

  • 相关阅读:
    Python-迭代器
    Python-if
    Python-赋值
    Python-基础
    Python-元组(tuple),文件
    Python-正则表达式
    Python-字典
    Python-列表
    C结构体之位域(位段)
    SignalTap II应用小实例之触发位置
  • 原文地址:https://www.cnblogs.com/Cai77/p/7788267.html
Copyright © 2020-2023  润新知