• 左式堆的懒惰删除


    左式堆的懒惰删除

    在左式堆中一个已知位置删除节点的一种方法是使用懒惰策略。要删除一个节点,只要将其标记为已被删除即可。当执行一个FindMinFindMinDeleteMinDeleteMin时,若标记根节点被删除则存在一个潜在的问题,因为此时节点必须被实际删除且需要找到实际的最小元,这可能涉及到删除其他一些已做标记的节点。

    在该方法中,DeleteDelete花费一个单位,但一次DeleteMinDeleteMinFindMinFindMin的开销却依赖于被做删除标记的节点的个数。

    Cheriton和Tarjan [1] 在论文中讨论了左式堆中的懒惰删除。一般的想法是:如果根被标记为删除,则形成堆的先序遍历,并删除标记删除的节点,留下堆的集合。通过将所有的堆放在队列中,每次出队两个堆进行合并然后将结果放在队列的末尾,直到队列中只有一个堆时停止操作。

    不一定每天 code well 但要每天 live well
  • 相关阅读:
    抽象类的练习
    Java异常处理1
    接口的应用
    接口之代理模式
    接口之工厂方法的设计模式
    给ubuntu系统换新装
    2的幂次方表示(OJ 8758)
    Fibonacci【矩阵乘法】(POJ 3070)
    斐波那契公约数(luogu 1306)
    枪战Maf (bzoj 1124)
  • 原文地址:https://www.cnblogs.com/geekfx/p/12423059.html
Copyright © 2020-2023  润新知