@Ankit: You read in the first k numbers and form a max-heap of these
numbers. This takes O(k) space. Then you read the rest of the file one
number at a time. If the number is greater than the root of the max
heap, then it is not one of the k smallest numbers. If it less than
the root, replace the root with the smaller number and re-establish
the heap condition. Thus, the memory requirement remains O(k). When
you reach the end of the data, then the heap contains the k smallest
numbers. If there are N numbers in the file, the work is O(N * log k).

Dave

On Mar 23, 11:22 pm, Ankit Sinha <akki12...@gmail.com> wrote:
> Guys,
>
> My intention was to understand how to manage max heap of k size into
> memory. Means we have millions of numbers that we can't load into RAM
> then how in the very first go we going to load only k size and how
> will track of rest numbers. Can anybody code it? Do we need file to
> store million numbers and then read say first k numbers and then take
> another chunk?
>
> Thanks,
>
> Ankit!!
>
>
>
> On Tue, Mar 22, 2011 at 10:13 AM, Rajeev Kumar <rajeevprasa...@gmail.com> 
> wrote:
> >http://flexaired.blogspot.com/2011/03/big-file-containing-billions-of...
>
> > On Mon, Mar 21, 2011 at 4:05 AM, Natansh Verma <natansh.ve...@gmail.com>
> > wrote:
>
> >> @dave -was this a constraint since the beginning? In case it was, I am
> >> sorry I didn't notice.
>
> >> In that case, the heap method ought to work better. I dont think the
> >> quicksort method will work.
>
> >> Sent from my iPhone
>
> >> On 20-Mar-2011, at 23:00, Dave <dave_and_da...@juno.com> wrote:
>
> >> > @Natansh: How do you do this with the constraint that your RAM is so
> >> > small that you cannot accomodate all of the numbers at once?
>
> >> > Dave
>
> >> > On Mar 20, 9:04 am, Natansh Verma <natansh.ve...@gmail.com> wrote:
> >> >> There's another way... use the partitioning method for quicksort to
> >> >> find the
> >> >> k smallest elements. Then it should take expected time as O(n + klogk).
> >> >> Plus, it is in-place.
>
> >> >> On Wed, Mar 16, 2011 at 7:26 PM, asit <lipu...@gmail.com> wrote:
> >> >>> I agree with munna
>
> >> >>> --
> >> >>> 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.-Hide quoted text -
>
> >> >> - Show quoted text -
>
> >> > --
> >> > 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.
>
> >> --
> >> 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.
>
> > --
> > Thank You
> > Rajeev Kumar
>
> > --
> > 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.- Hide quoted text -
>
> - Show quoted text -

-- 
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