NP-complete problems are a class of problems for which no efficient algorithm has been found, though it has not been proven that none exists yet. However, once an algorithm for a NP-complete problem exist, we know that there exists an efficient algorithm for all NP-complete problems. Note that although an efficient algorithm may not exist, approximation algorithms do.