Fibonacci heap

Introduction

a data structure that implement a efficient priority queue.  


operations

INSERT

Adding a new element s with a key k(s) to S.

EXTRACT-MIN

Returning a element s of S having minimal key and removing s from S

DECREASE-KEY

Replacing the value of a key of some element s by a new, smaller value.


Classical problem on priority queue

Single-source shortest paths problem

the classical solution for this problem is Dijkstra's algorithm. The algorithm is:

  1. Maintain a priority queue containing some subset S of vertices of G with keys K. Initially, S = V, k(s) = 0, and k(v) = +infinite
  2. As long as S is nonempty:

Extract a vertex u from S with minimum key.

For each out-neighbor v IN S of u, we update the key(v) to be min {k(v),k(u)+e(u,v)}


Minimum Spanning Tree problem

Prim's algorithm is very similar to the approach of Dijkstra's algorithm for single source shortest path problem.

  1. Maintain a priority queue containing some subset S of vertices of G with k(v) and a tree T spanning V. Initially, T = empty, S = V , and K(s) = 0 for some arbitrary vertex s,and k(v) = +infinite for v!=s
  2. As long as S is nonempty,

Extract a vertex u from S with minimum key. If u!=s, add to T the corresponding edge

For each neighbor v IN S of u, we update k(v) = min(k(v),w(u,v))





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值