1 DIST[s]=0;
2 Insert(U,0,s);
3 forall(v:V\{s}) {
4 DIST[v]=infty;
5 Insert(U, infty, v);
6 }
7 while !Empty(U) {
8 (d,u)=DeleteMin(U);
9 forall(e=(u,v):E) {
10 if(DIST[v]>DIST[u]+c(u,v)){
11 DIST[v]=DIST[u]+c(u,v);
12 DecreaseKey(U,v,DIST[v]);
13 }}}