Deterministic versus nondeterministic algorithms