NP completeness (P, NP and NPC) Polynomial, Non-Polynomial, NP-Complete and NP hard algorithms