Donn Cave wrote:
It looks easy enough to me to code up an order independent version
will actually work. I would initialize adds and dels with old & new
berval pointers, iterate through dels and adds (nested), and clear
both on match. The code is easier to follow and empirically I see one
fewer matches in the cases I tested it on. But that's just a test of
the algorithm - I haven't sorted out what needs to be done at the end of
the function where mcur etc. are modified depending on i == j.
The only way to do this right, without dying on an O(n^2) algorithm, is to sort
both arrays first and then walk through them in order as the original code did.
If you want to submit such a patch, please do. I don't have a lot of time to
focus on this at the moment.
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/