Techniques exploited by quantum algorithms