http://www.cs.usfca.edu/~galles/visualization/Algorithms.html