In my application, I have a large graph (I am not sure that it will fit in the memory, but let's assume it will), which **I think** will have |E| > |V|.

I want to find the shortest path between two nodes. The graph is undirected and the edges have no weights. Do you happen to know anything on this topic? Any algorithm(s)/paper(s)?

//on the background

I am thinking of setting the graph (I am in the designing phase) with every node holding its linking with its neighbors data (instead for a global structure, like a list or matrix). That way, I am almost sure that searching will become more efficient than in the case with the list or matrix. You see the graph is going to be large and the goal is to perform as fast queries as possible. By holding local indexes per node of graph, I will access only the indices of the neighbors per node.