Analyze the complexity of the Floyd-Warshall algorithm. Understand its cubic time complexity and when it is appropriate to use for dense graph data.