Vikas, can you suggest the logic of this also? I am a bit unclear on how
the 2D arr is being used as a heap and how recursion is used to solve this

Best Regards
Ashish Goel
"Think positive and find fuel in failure"
+919985813081
+919966006652


On Thu, Oct 13, 2011 at 11:37 PM, vikas <vikas.rastogi2...@gmail.com> wrote:

> @Sunny, good catch, k X k approach wont work
>
> lets try to use matrix itself as heap
>
> heapify(int cr, int cc, int Nr, int Nc){
>   mr = cr; mc = cc;
>  if(cr+1 < Nr)
>    mr = cr+1 mc = cc;
>  if(cc + 1 < Nc && min > A[cc+1][cr])
>     mr = cr; mc = cc+1;
>  if(A[cr][cc] > A[mr][mc]){
>   swap(&A[cr][cc] ,&A[mr][mc]);
>   heapify(mr, mc, Nr, Nc);
> }
>
> extract_min(){
> swap(&A[0][0], &A[hr][hc]);
> if(hc > 0) hc--;
> else if(hr > 0){
>  hr --;
>  hc = N;
> }
> if(hr | hc)
>  heapify(0, 0, hr, hc);
> }
>
>
> }
>
>
> On Oct 13, 12:18 pm, sunny agrawal <sunny816.i...@gmail.com> wrote:
> > Nopes
> > Still it does not ensure that duplicates will not be there in the
> priority
> > queue
> >
> > what i mean is you cannot write directly
> >
> > do k times{
> > data = pop()
> > // let i,j are row and col of data
> > push(i+1,j);
> > push(i,j+1);
> >
> > }
> >
> > you need to add the following checks
> >
> > if((i+1,j) is not in the heap) push(i+1,j)
> > if((i,j+1) is not in the heap) push(i,j+1)
> > because heap does not automatically check for duplicates
> >
> > and to check for duplicates we need an extra data structure other than
> heap,
> > which stores that which (i+1,j) are already there in the heap map can
> also
> > be used so overall complexity will go O(k* lg^2K)
> >
> > On Thu, Oct 13, 2011 at 12:26 PM, anshu mishra <
> anshumishra6...@gmail.com>wrote:
> >
> >
> >
> > > struct data
> > > {
> > > int row, col,
> > > int val;
> > > };
> >
> > > priority_queue<data> heap;
> >
> > > now fine?
> >
> > >  --
> > > 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.
> >
> > --
> > Sunny Aggrawal
> > B.Tech. V year,CSI
> > Indian Institute Of Technology,Roorkee
>
> --
> 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.

Reply via email to