What is the fastest algorithm for intersection of two sorted lists? -


say there 2 sorted lists: , b.

the number of entries in , b can vary. (they can small/huge. can similar each other/significantly different).

what known fastest algorithm functionality?

can 1 give me idea or reference?

assume a has m elements , b has n elements, m ≥ n. information theoretically, best can is

   (m + n)! lg -------- = n lg (m/n) + o(n)     m!  n! 

comparisons, since in order verify empty intersection, have perform sorted merge. can within constant factor of bound iterating through b , keeping "cursor" in a indicating position @ recent element of b should inserted maintain sorted order. use exponential search advance cursor, total cost on order of

lg x_1 + lg x_2 + ... + lg x_n, 

where x_1 + x_2 + ... + x_n = m + n integer partition of m. sum o(n lg (m/n)) concavity of lg.


Comments

Popular posts from this blog

asynchronous - C# WinSCP .NET assembly: How to upload multiple files asynchronously -

aws api gateway - SerializationException in posting new Records via Dynamodb Proxy Service in API -

asp.net - Problems sending emails from forum -