A standard quantum oracle
Sf for a general function $f: {Z}_{N}\ensuremath{\rightarrow}{Z}_{N}$ is defined to act on two input states and return two outputs, with inputs
∣i〉 and $|j〉 (i,j\ensuremath{\in}{Z}_{N})$ returning outputs
∣i〉 and $|j\ensuremath{\bigoplus}f(i)〉.$ However, if f is known to be a one-to-one function, a simpler oracle,
Mf, which returns
∣f(i)〉 given
∣i〉, can also be defined. We consider the relative strengths of these oracles. We define a simple promise problem that minimal quantum oracles can solve exponentially faster than classical oracles, via an algorithm that cannot be naively adapted to standard quantum oracles. We show that
Sf can be constructed by invoking
Mf and ${(M}_{f}{)}^{\ensuremath{-}1}$ once each, while $\ensuremath{\Theta}(\sqrt{N})$ invocations of
Sf and/or ${(S}_{f}{)}^{\ensuremath{-}1}$ are required to construct
Mf.It is an established fact that for many of the interesting problems quantum algorithms based on queries of the standard oracle bring no significant improvement in comparison to known classical algorithms. It is conceivable that there are other oracles of algorithmic importance acting in a less intuitive fashion to which such limitations do not apply. Thus motivated this article suggests a broader understanding towards what a general quantum oracle is. We propose a general definition of a quantum oracle and give a classification of quantum oracles based on the behavior of the eigenvalues and eigenvectors of their queries. Our aim is to determine the computational characteristics of a quantum oracle in terms of these eigenvalues and eigenvectors. Within this framework we attempt to describe the class of quantum oracles that are efficiently simulated by the standard oracle and compare the computational strength of different kinds of quantum oracles by an adversary argument using trigonometric polynomials.