diffing算法