Here are the answers to your questions:
Q.1) There are two main classes of NP problems:
- NP-Complete problems: Problems that are in NP and are at least as hard as any other problem in NP. This means if you can efficiently solve one NP-Complete problem, then you can efficiently solve any problem in NP.
- NP-Hard problems: Problems at least as hard as the hardest problems in NP. NP-Hard problems may not necessarily be in NP.
Q.2) A nondeterministic algorithm is one that, at some step, can choose from multiple possible choices without a clear deterministic rule for how to pick the choice. It is modeled as having the ability to "guess" the right