Version 2.0

Implemented the O(NP) and O(ND) Difference algorithms to improve the performance.
Version 2.1: Coding changes in the O(NP) function for readability.