I have a procedure that generates N x M values sequentially. I want to store the N largest ones and discard the others. Obviously I can store all the values in a vector, sort it when it is full and then choose the top N values. Is there a more efficient way using a data structure that just stores the top N values as the procedure goes along? Typically M is 1,000 and N is anywhere from 1,000 to 50,000. I have no prior expectation on how the N largest values are distributed amongst the N x M values.

I'm working in C++ with the STL and boost libraries.

Thanks for reading this,
John.

--
You received this message because you are subscribed to the Google Groups "Algorithm 
Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to