Quantum Searching and Optimization Algorithms