A cynical view of graph algorithms is that ``everything we want to do is hard.'' Indeed, no polynomial-time algorithms are known for any of the problems in this section. Further, with the exception of graph isomorphism, all of them are provably NP-complete.
The theory of NP-completeness demonstrates that if any NP-complete problem has a polynomial-time algorithm, then polynomial-time algorithms must exist for all NP-complete problems. This seems sufficiently preposterous that NP-completeness suffices as a de facto proof that no efficient worst-case algorithm exists for the given problem.
Still, do not abandon hope if your problem resides in this chapter. For each of these problems, we provide a recommended line of attack, be it through combinatorial search, heuristics, or approximation algorithms. For every problem, there exist restricted input instances that are polynomial-time solvable, and if you are lucky, perhaps your data happens to fall into one of these classes. Hard problems require a different methodology to work with than polynomial-time problems, but with care they can usually be dealt with successfully.
The following books will help you deal with NP-complete problems: