Parallel algorithms are algorithm overloads.

Each parallel algorithm overload
has an additional template type parameter named ExecutionPolicy,
which is the first template parameter.

Additionally, each parallel algorithm overload
has an additional function parameter of type ExecutionPolicy&&,
which is the first function parameter.

Unless otherwise specified,
the semantics of ExecutionPolicy algorithm overloads
are identical to their overloads without.

Unless otherwise specified,
the complexity requirements of ExecutionPolicy algorithm overloads
are relaxed from the complexity requirements of the overloads without
as follows:
when the guarantee says “at most *expr*” or
“exactly *expr*”
and does not specify the number of assignments or swaps, and
*expr* is not already expressed with notation,
the complexity of the algorithm shall be .