large1 = a[0];
large2 = a[1];

if(large1 < large2)
swap(large1,large2)

while(i < n)
{
    if(a[i] > large1)
   {
      large2 = large1
    large1 = a[i]
}
else if(a[i] > large2)
large2 = a[i]
}

// test the case if no of elements is 1 :)

On Sat, Sep 10, 2011 at 8:54 PM, Dave <[email protected]> wrote:

> @Abhinav: Does it work correctly on {1, 3, 2}, or, for that matter, on
> any array where the second largest comes after the largest?
>
> Dave
>
> On Sep 10, 10:16 am, abhinav gupta <[email protected]> wrote:
> > temp2 is second largest element.
> >
> > On Sat, Sep 10, 2011 at 8:00 AM, abhinav gupta <
> [email protected]>wrote:
> >
> >
> >
> >
> >
> > > I can solve this problem in O(n)
> > > i=0;
> > > temp1=arr[0];
> >
> > > while(i != len)
> > > {
> > > if(arr[i] > temp1)
> > > {
> > > temp2=temp1;
> > > temp1=arr[i]
> > > }
> > > i++;
> > > }
> >
> > > On Sat, Sep 10, 2011 at 7:42 AM, Dave <[email protected]> wrote:
> >
> > >> @Replying to my own posting: remove the words "one of the numbers that
> > >> lost to", so that the explanation reads
> >
> > >> The question should be "How can we find the second largest element in
> > >> an array in n + ceiling(log_2(n)) - 2 comparisons?" The answer is to
> > >> use a tournament to select the largest number. The second largest
> > >> number will have lost to the largest. It takes n - 1 comparisons to
> > >> determine the largest number. There are ceiling(log_2(n)) numbers that
> > >> have lost to the largest, and it takes ceiling(log_2(n)) - 1
> > >> comparisons to find the largest of them.
> >
> > >> Dave
> >
> > >> On Sep 10, 9:28 am, Dave <[email protected]> wrote:
> > >> > @Praveen: The question should be "How can we find the second largest
> > >> > element in an array in n + ceiling(log_2(n)) - 2 comparisons?" The
> > >> > answer is to use a tournament to select the largest number. The
> second
> > >> > largest number will have lost to one of the numbers that lost to the
> > >> > largest. It takes n - 1 comparisons to determine the largest number.
> > >> > There are ceiling(log_2(n)) numbers that have lost to the maximum,
> and
> > >> > it takes ceiling(log_2(n)) - 1 comparisons to find the largest of
> > >> > them.
> >
> > >> > Dave
> >
> > >> > On Sep 10, 9:18 am, praveen raj <[email protected]> wrote:
> >
> > >> > > How can we find second largest element in an array... in O(n
> > >> > > +logn-2)... give me proof.....- 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 [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.
> >
> > > --
> > > @ |3  # ! /\/ @ \./
> >
> > --
> > @ |3  # ! /\/ @ \./- 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 [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.
>
>

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