You can use priority_queue in STL. The size needs to be limited to N
elements. At any point the the N elements in the heap will give the largest
N
elements processed so far.

On Mon, Jul 11, 2011 at 4:41 PM, John Reid <j.r...@mail.cryst.bbk.ac.uk>wrote:

>
>
> On 11/07/11 12:07, abhijith reddy wrote:
>
>> Wouldn't a heap be ideal for this ?
>>
>
> I thought it might. Do I just need to limit the heap to size 2 * N to avoid
> storing values I'll never need?
>
> Thanks,
> John.
>
>
>
>> On Mon, Jul 11, 2011 at 3:35 PM, John Reid
>> <j.r...@mail.cryst.bbk.ac.uk
>> <mailto:j.r...@mail.cryst.bbk.**ac.uk <j.r...@mail.cryst.bbk.ac.uk>>>
>> wrote:
>>
>>    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
>>    algogeeks@googlegroups.com
>>    <mailto:algogeeks@**googlegroups.com <algogeeks@googlegroups.com>>.
>>
>>    To unsubscribe from this group, send email to
>>    algogeeks+unsubscribe@__google**groups.com <http://googlegroups.com>
>>    
>> <mailto:algogeeks%**2bunsubscr...@googlegroups.com<algogeeks%252bunsubscr...@googlegroups.com>
>> **>.
>>
>>    For more options, visit this group at
>>    
>> http://groups.google.com/__**group/algogeeks?hl=en<http://groups.google.com/__group/algogeeks?hl=en>
>>    
>> <http://groups.google.com/**group/algogeeks?hl=en<http://groups.google.com/group/algogeeks?hl=en>
>> >.
>>
>>
>> --
>>
>> You received this message because you are subscribed to the Google
>> Groups "Algorithm Geeks" group.
>> To post to this group, send email to
>> algogeeks@googlegroups.com.
>> To unsubscribe from this group, send email to
>> algogeeks+unsubscribe@**googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/**group/algogeeks?hl=en<http://groups.google.com/group/algogeeks?hl=en>
>> .
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to algogeeks+unsubscribe@**
> googlegroups.com <algogeeks%2bunsubscr...@googlegroups.com>.
> For more options, visit this group at http://groups.google.com/**
> group/algogeeks?hl=en <http://groups.google.com/group/algogeeks?hl=en>.
>
>

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

Reply via email to