http://en.wikipedia.org/wiki/List_of_algorithms