Breadth First Search or Depth First Search?
When you want to find the shortest path you should use BFS and not DFS because BFS explores the closest nodes first so when you reach your goal you know for sure that you used the shortest path and you can stop searching. Whereas DFS explores one branch at a time so when you reach your goal you can't be sure that there is not another path via another branch that is shorter.
So you should use BFS.
If your graph have different weights on its edges, then you should use Dijkstra's algorithm which is an adaptation of BFS for weighted graphs, but don't use it if you don't have weights.
Some people may recommend you to use Floyd-Warshall algorithm but it is a very bad idea for a graph this large.
I am implementing a huge directed graph consisting of 100,000+ nodes. I am just beginning python so I only know of these two search algorithms. Which one would be more efficient if I wanted to find the shortest distance between any two nodes? Are there any other methods I'm not aware of that would be even better?
Thank you for your time