Python 3/Google hash code/Slideshow/slideshow.py
def  dijkstra(n,c,v0):
    """n es el numero de nodos, c es la tabla de adyacencias y v0 es el nodo inicial"""
    # D[v]:  coste  del  camino  especial  optimo a v
    # D = [c[(v0 ,v)] if v!=v0 else 0 for v in  range(n)]
    D = [c[v0][v] for v in range(n)] # D son los pesos de v0 a cada vértice
    # print(id(D))
    # P[v]:  vertice  anterior  en el  camino  especial  optimo a v
    # como desde v0 a cada vértice hay camino, sin optimizar,
    # el camino a cada vértice es el camino directo independientemente del peso
    P = [v0 for v in range(n)]
    C = [v for v in range(n)] # C es el vector de vértices sin optimizar
    C.remove(v0)
    while len(C) > 0:
        max = maximo(D, C)
        C.remove(max)
        for v in C: # actualizacion  de D y P
            if c[max][v] + D[max] > D[v]:
                D[v] = D[max] + c[max][v]
                P[v] = max
    return D,P
n es el numero de nodos, c es la tabla de adyacencias y v0 es el nodo inicial
n es el numero de nodos, c es la tabla de adyacencias y v0 es el nodo inicial
n es el numero de nodos c es la tabla de adyacencias y v0 es el nodo inicial
def  dijkstra(n,c,v0):
    D = [c[v0][v] for v in range(n)] 
    P = [v0 for v in range(n)]
    C = [v for v in range(n)] 
    C.remove(v0)
    while len(C) > 0:
        max = maximo(D, C)
        C.remove(max)
        for v in C: 
            if c[max][v] + D[max] > D[v]:
                D[v] = D[max] + c[max][v]
                P[v] = max
    return D,P
def dijkstra ( n , c , v0 ) : D = [ c [ v0 ] [ v ] for v in range ( n ) ] P = [ v0 for v in range ( n ) ] C = [ v for v in range ( n ) ] C . remove ( v0 ) while len ( C ) > 0 : max = maximo ( D , C ) C . remove ( max ) for v in C : if c [ max ] [ v ] + D [ max ] > D [ v ] : D [ v ] = D [ max ] + c [ max ] [ v ] P [ v ] = max return D , P
n es el numero de nodos, c es la tabla de adyacencias y v0 es el nodo inicial
n es el numero de nodos c es la tabla de adyacencias y v0 es el nodo inicial
"""n es el numero de nodos, c es la tabla de adyacencias y v0 es el nodo inicial""" # D[v]:  coste  del  camino  especial  optimo a v # D = [c[(v0 ,v)] if v!=v0 else 0 for v in  range(n)] # D son los pesos de v0 a cada vértice # print(id(D)) # P[v]:  vertice  anterior  en el  camino  especial  optimo a v # como desde v0 a cada vértice hay camino, sin optimizar, # el camino a cada vértice es el camino directo independientemente del peso # C es el vector de vértices sin optimizar # actualizacion  de D y P
n
c
v0