P stands for polynomial time. NP stands for non-deterministic polynomial time. Definitions: Polynomial time means that the complexity of the algorithm is O(n^k), where n is the size of your data (e. g. number of elements in a list to be sorted), and k is a constant.
Now, a German man named Norbert Blum has claimed to have solved the above riddle, which is properly known as the P vs NP problem.