Graphs, networks, and algorithms