Names of Graph Traversal Algorithms

狂风中的少年 提交于 2019-12-03 02:49:43

问题


What I'm looking for is a comprehensive list of graph traversal algorithms, with brief descriptions of their purpose, as a jump off point for researching them. So far I'm aware of:

  • Dijkstra's - single-source shortest path
  • Kruskal's - finds a minimum spanning tree

What are some other well-known ones? Please provide a brief description of each algorithm to each of your answers.


回答1:


the well knowns are :

  • Depth-first search http://en.wikipedia.org/wiki/Depth-first_search
  • Breadth-first search http://en.wikipedia.org/wiki/Breadth-first_search
  • Prim's algorithm http://en.wikipedia.org/wiki/Prim's_algorithm
  • Kruskal's algorithm http://en.wikipedia.org/wiki/Kruskal's_algorithm
  • Bellman–Ford algorithm http://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm
  • Floyd–Warshall algorithm http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm
  • Reverse-delete algorithm http://en.wikipedia.org/wiki/Reverse-Delete_algorithm
  • Dijkstra's_algorithm http://en.wikipedia.org/wiki/Dijkstra's_algorithm

network flow

  • Ford–Fulkerson algorithm http://en.wikipedia.org/wiki/Ford%E2%80%93Fulkerson_algorithm
  • Maximum Flow http://en.wikipedia.org/wiki/Maximum_flow_problem



回答2:


A few off of the top of my head:

Depth-first and Breadth-first traversals, really just two different ways of touching all of the nodes.

Floyd-Warshall algorithm finds the shortest paths between any pair of points, in (big-theta)(v^3) time.

Prim's algorithm is an alternative to Kruskal's for MST.

There are also algorithms for finding fully connected components, which are groups of nodes where you can get from any member in the component to any other member. This only matters for "directed graphs", where you can traverse an edge only one direction.

Personally, I think the coolest extension of graph theory (not exactly related to your question, but if you're interested in learning more about graphs in general its certainly worth your while) is the concepts of "flow networks": http://en.wikipedia.org/wiki/Flow_network . It is a way of computing about, say, how much electricity can one distribute over houses with a variety of power needs and requirements, and a variety of power stations.




回答3:


Graph algorithms

  • http://en.wikipedia.org/wiki/List_of_algorithms#Graph_algorithms

All algorithms in one place

  • http://en.wikipedia.org/wiki/List_of_algorithms

Dictionary of algorithms and data structures:

  • Dictionary: http://xlinux.nist.gov/dads/

  • By area: http://xlinux.nist.gov/dads/termsArea.html

  • By terms type: http://xlinux.nist.gov/dads/termsType.html

  • List of all implementations in diff. languages: http://xlinux.nist.gov/dads/termsImpl.html



来源:https://stackoverflow.com/questions/1072964/names-of-graph-traversal-algorithms

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!