Bellman-Ford Algorithm: Given a weighted, directed graph G and a source vertex s, find the shortest paths from source to all vertices of the graph. Edge weights can be negative. Java code is provided in Code Snippet section. Java visualization is provided in algorithm visualization section.