Berman, Kenneth A. and Paul, Jerome L.. Algorithms : sequential, parallel, and distributed. Boston, Mass.: Thomson, Course Technology, 2005.