Algorithmic and Structural Properties of Random Graphs