Grover's algorithm Brassard, Høyer, and Tapp's algorithm unstructured ion
The most well-known example of a problem that allows for a polynomial quantum speedup is unstructured search, which involves finding a marked item out of a list of 



n


{\displaystyle n}

 items in a database. This can be solved by Grover's algorithm using 



O
(


n


)


{\displaystyle O({\sqrt {n}})}

 queries to the database, quadratically fewer than the 



Ω
(
n
)


{\displaystyle \Omega (n)}

 queries required for classical algorithms. In this case, the advantage is not only provable but also optimal: it has been shown that Grover's algorithm gives the maximal possible probability of finding the desired element for any number of oracle lookups. Many examples of provable quantum speedups for query problems are based on Grover's algorithm, including Brassard, Høyer, and Tapp's algorithm for finding collisions in two-to-one functions, and Farhi, Goldstone, and Gutmann's algorithm for evaluating NAND trees.
