Algorithms and computational complexity