An Introduction to Quantum Computing Algorithms (Progress in Computer Science and Applied Logic, V. 19)