Quantum Algorithms and Simulation