図及びアルゴリズム――アルゴリズムを巡回する(反復的に実現する)

5784 ワード

今まで、アルゴリズムについて、少しずつ説教してきましたが、風邪を引かないようにしています.うん、今回はこの問題はどうすればいいか分かります.確かにこの問題を解決しました.しかし、多くの問題と一緒に来ました.この世界には様々なアルゴリズムがあります.
あるアルゴリズムの流れはまだ長すぎて、頭が足りないです.これほど多くの細部を覚えられるところがありますか?覚えても長くはなりません.覚えていても、典型的なものしか覚えられません.愛は甘くて酸っぱいです.
もううるさくないです.今回お世話になりましたのは巡回(捜索)です.モデルの仮定です.
1.図は網で、あなたは爬虫類で、爬虫類はノードごとにしっかりしているかどうかを確認したいです.
2.Actor爬虫類として、状態のある対象であり、毎回異なる環境にある場合は更新が必要である.
3.毎回状態を更新する方式は似ています.
本人の経験を結び付けます.反復アルゴリズムは通常考慮します.
a.どのような状態がありますか?背景と環境はメンテナンスが必要です.
b.関連量をどのように初期化しますか?
c.状態はどのように更新されますか?
d.ステータスはいつ更新されますか?
反復の循環特性は、どのカットから入ればいいですか?初期化してもいいですか?
そうです.これは微分方程式と似ています.初期状態が重要です.
 
class Graph: 
    def __init__(self): 
        self.graph: Dict[str, List[str]] = defaultdict(list)
    
    def addEdge(self, u, v): 
        self.graph[u].append(v)
        
def dfs_traverse(graph, start):
    visited, stack = set(), [start]
    while stack:
        node = stack.pop()
        if node not in visited:
            visited.add(node)
            for nextNode in graph[node]:
                if nextNode not in visited:
                    stack.append(nextNode)
    return visited


def bfs_traverse(graph, start):
    visited, queue = set(), [start]
    while queue:
        node = queue.pop(0)   #
        if node not in visited:
            visited.add(node)
            for nextNode in graph[node]:
                if nextNode not in visited:
                    queue.append(nextNode)
    return visited

#     Actor      ,            ,       

def BFS(graph, s): 
    visited = set()
    queue = [] 
    queue.append(s)  #
    while queue: 
        s = queue.pop(0) 
        print(s, end=" ") 
        for i in graph[s]: 
            if i not in visited: 
                visited.add(i)
                queue.append(i) 
    return visited

def BFS2(graph, s): 
    visited = set()
    queue = [] 
    while True:
        print(s, end=" ") 
        for i in graph[s]: 
            if i not in visited: 
                visited.add(i)
                queue.append(i)
        if queue:
            s = queue.pop(0) 
        else:
            break
        
        print(queue)
    return visited
転載先:https://www.cnblogs.com/wdmx/p/10076336.html