Analyze the time and space complexity of the Bellman-Ford algorithm. Understand its efficiency and when to use it over Dijkstra's shortest path.