@ Mangal : well if see the soln carefully then before loop starts elem is
assigned to arr[0] and copy of arr[0] is saved to temp. This will make sure
that the elem exists in the arr[] ,so it will never reach arr[-1] . when
size become =0 then it will come out of the loop bcoz of the assignment
done before.So it acts like a delimiter for termination of loop.
But there could be possibility that *actual arr[]* contains elem at
position arr[0], dats why it is saved to temp and checking is done at the
end , after the while() loop if temp is elem or not .
i hope now you got the solution , *very poor analysis of the given solution
i will say *;) ;) ;)

On Mon, Oct 8, 2012 at 12:31 AM, Mangal Dev Gupta <dev.it...@gmail.com>wrote:

> *@Dave  while( arr[--size] != elem );*
>
> *Exception will come when it will encounter a[-1]*
> *i dont know if this loop will ever end... very poor solution i will say
> *
>
> On Sat, Oct 6, 2012 at 10:00 PM, Umer Farooq <the.um...@gmail.com> wrote:
>
>> Well actually, I've just gone through Dave's code thoroughly and I
>> believe that his code is most appropriate.
>>
>> Thanks viper11 for providing the explanation.
>>
>> As for my code, I'd like to replace
>>
>> while (i!=j)
>>
>> with
>>
>> while (i < j)
>>
>> because != won't work for middle element if the number of elements are
>> odd ... and it also won't work if the number of elements are even.
>>
>> Anyway, thanks Dave for providing us with such a great solution. Please
>> keep posting! :-)
>>
>> And others, thanks for pointing out the issue in my code.
>>
>> On Sat, Oct 6, 2012 at 9:03 PM, Kalidhakani J <kanikali...@gmail.com>wrote:
>>
>>> @umer - what if the element to be searched is at the middle of the
>>> array? your code doesn't handles this. check out.
>>>
>>>
>>> On Sat, Oct 6, 2012 at 3:38 AM, icy` <vipe...@gmail.com> wrote:
>>>
>>>> nice solution, Dave!
>>>>
>>>> @Umer -- if the sought ele is first, then Dave's code has it sitting in
>>>> the variable temp for a little while.   Loop will stop when size is 0,
>>>> since arr[0]==elem.  Now he throws temp back into arr[0], which will return
>>>> index 0 from the last compare line.
>>>>
>>>> On Wednesday, October 3, 2012 2:08:56 AM UTC-4, Umer Farooq wrote:
>>>>>
>>>>> @Dave Thanks for pointing that out.
>>>>>
>>>>> But I still can't get what if elem is on first element or it is not
>>>>> present in the array? How is your code going to handle that situation?
>>>>>
>>>>> @Atul, Well yes, In the given question, the number of iterations were
>>>>> 2n. Which I have reduced to n+n/2.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Oct 2, 2012 at 11:13 PM, atul anand <atul.8...@gmail.com>wrote:
>>>>>
>>>>>> @umer : how no. of comparison are reduced to half by moving both
>>>>>> sides....you have 2 if condition inside, so you are making 2
>>>>>> comparisons at each iteration + n/2 comparison for while loop so
>>>>>> number of comparisons are n+n/2
>>>>>>
>>>>>> On 10/2/12, Umer Farooq <the....@gmail.com> wrote:
>>>>>> > why don't we try it from both ends ... something like this:
>>>>>> >
>>>>>> > int i = 0; j = size-1;
>>>>>> >
>>>>>> > while (i != j)
>>>>>> > {
>>>>>> >     if (arr[i] == elem)
>>>>>> >           return arr[i];
>>>>>> >     if (arr[j] == elem)
>>>>>> >            return arr[j];
>>>>>> > }
>>>>>> >
>>>>>> > this way, we have eliminated half of the comparisons in for loop?
>>>>>> What do
>>>>>> > you guys say?
>>>>>> >
>>>>>> > On Tue, Oct 2, 2012 at 12:18 PM, rafi <rafiw...@gmail.com> wrote:
>>>>>> >
>>>>>> >> Vikas is right!
>>>>>> >> while (n) is equal to (while n!=0)
>>>>>> >> you have 2n compares!
>>>>>> >>
>>>>>> >> בתאריך יום שני, 1 באוקטובר 2012 12:12:21 UTC+2, מאת vikas:
>>>>>> >>
>>>>>> >>> still there is no improvement, compiler will generate the code to
>>>>>> >>> compare
>>>>>> >>> with zero here. what you have accomplished is , hide it from
>>>>>> human eyes
>>>>>> >>>
>>>>>> >>> On Monday, 1 October 2012 15:25:09 UTC+5:30, Navin Kumar wrote:
>>>>>> >>>>
>>>>>> >>>> @atul:
>>>>>> >>>> still it won't compare 0 th element. Slight modification in your
>>>>>> code:
>>>>>> >>>>
>>>>>> >>>> n=*sizeof(arr)*;
>>>>>> >>>> do
>>>>>> >>>> {
>>>>>> >>>>      if(elem==arr[*--n*])
>>>>>> >>>>          print found;
>>>>>> >>>>
>>>>>> >>>> }while(n);
>>>>>> >>>>
>>>>>> >>>> On Mon, Oct 1, 2012 at 9:50 AM, atul anand <atul.8...@gmail.com>
>>>>>> wrote:
>>>>>> >>>>
>>>>>> >>>>> yes, but there no need of checking outside the loop
>>>>>> >>>>>
>>>>>> >>>>> n=sizeof(arr)-1;
>>>>>> >>>>> do
>>>>>> >>>>> {
>>>>>> >>>>>      if(elem==arr[n])
>>>>>> >>>>>          print found;
>>>>>> >>>>>     n--;
>>>>>> >>>>>
>>>>>> >>>>> }while(n);
>>>>>> >>>>>
>>>>>> >>>>>
>>>>>> >>>>>
>>>>>> >>>>> On Mon, Oct 1, 2012 at 9:33 AM, Navin Kumar
>>>>>> >>>>> <algorit...@gmail.com>wrote:
>>>>>> >>>>>
>>>>>> >>>>>> @atul: keep one more checking outside loop for element at 0 th
>>>>>> index.
>>>>>> >>>>>> Because when n = 0  the your loop come out from the loop
>>>>>> without
>>>>>> >>>>>> comparing
>>>>>> >>>>>> it.
>>>>>> >>>>>>
>>>>>> >>>>>>
>>>>>> >>>>>> On Mon, Oct 1, 2012 at 8:55 AM, atul anand
>>>>>> >>>>>> <atul.8...@gmail.com>wrote:
>>>>>> >>>>>>
>>>>>> >>>>>>> n=sizeof(arr);
>>>>>> >>>>>>> n--;
>>>>>> >>>>>>>
>>>>>> >>>>>>> while(n)
>>>>>> >>>>>>> {
>>>>>> >>>>>>>      if(elem=arr[n])
>>>>>> >>>>>>>           print found;
>>>>>> >>>>>>>
>>>>>> >>>>>>> n--;
>>>>>> >>>>>>>
>>>>>> >>>>>>> }
>>>>>> >>>>>>>
>>>>>> >>>>>>> On Sun, Sep 30, 2012 at 2:56 PM, רפי וינר <rafiw...@gmail.com
>>>>>> >
>>>>>> >>>>>>> wrote:
>>>>>> >>>>>>>
>>>>>> >>>>>>>> Hi
>>>>>> >>>>>>>> i was in an interview and was given a simple function
>>>>>> >>>>>>>> int arrExsits(int* arr,int size,int elem){
>>>>>> >>>>>>>> for (int i=0;i<size;++i)
>>>>>> >>>>>>>>     if(elem==arr[i])
>>>>>> >>>>>>>>        return i;
>>>>>> >>>>>>>> return -1;
>>>>>> >>>>>>>> }
>>>>>> >>>>>>>> this function does 2n compares
>>>>>> >>>>>>>> n- the if statment
>>>>>> >>>>>>>> n-check that i is smaller then size
>>>>>> >>>>>>>> i was suppose to give an optimal (less compares) solution so
>>>>>> i gave
>>>>>> >>>>>>>>
>>>>>> >>>>>>>> int arrExsits(int* arr,int size,int elem){
>>>>>> >>>>>>>> if (arr[size-1]==elem)
>>>>>> >>>>>>>>     return size-1;
>>>>>> >>>>>>>> arr[size-1]=elem]
>>>>>> >>>>>>>> for (int i=0;;++i)
>>>>>> >>>>>>>>     if(elem==arr[i]){
>>>>>> >>>>>>>>         if (i!=size-1)
>>>>>> >>>>>>>>             return i;
>>>>>> >>>>>>>> return -1;
>>>>>> >>>>>>>> }
>>>>>> >>>>>>>> this solution works and it has n+2 compares the first one
>>>>>> another n
>>>>>> >>>>>>>> and the second inner if.
>>>>>> >>>>>>>> they told me it's good (and I've passed) but they told just
>>>>>> for my
>>>>>> >>>>>>>> knowledge that there is a better N compare solution.
>>>>>> >>>>>>>> I've searched the web but couldn't find it.
>>>>>> >>>>>>>> anybody knows?
>>>>>> >>>>>>>> Thanks
>>>>>> >>>>>>>>
>>>>>> >>>>>>>> --
>>>>>> >>>>>>>> You received this message because you are subscribed to the
>>>>>> Google
>>>>>> >>>>>>>> Groups "Algorithm Geeks" group.
>>>>>> >>>>>>>> To post to this group, send email to
>>>>>> algo...@googlegroups.com.
>>>>>> >>>>>>>> To unsubscribe from this group, send email to
>>>>>> >>>>>>>> algogeeks+...@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>>
>>>>>> >>>>>>>> .
>>>>>> >>>>>>>>
>>>>>> >>>>>>>
>>>>>> >>>>>>>  --
>>>>>> >>>>>>> You received this message because you are subscribed to the
>>>>>> Google
>>>>>> >>>>>>> Groups "Algorithm Geeks" group.
>>>>>> >>>>>>> To post to this group, send email to algo...@googlegroups.com
>>>>>> .
>>>>>> >>>>>>> To unsubscribe from this group, send email to
>>>>>> >>>>>>> algogeeks+...@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>>
>>>>>> >>>>>>> .
>>>>>> >>>>>>>
>>>>>> >>>>>>
>>>>>> >>>>>>  --
>>>>>> >>>>>> You received this message because you are subscribed to the
>>>>>> Google
>>>>>> >>>>>> Groups "Algorithm Geeks" group.
>>>>>> >>>>>> To post to this group, send email to algo...@googlegroups.com.
>>>>>> >>>>>> To unsubscribe from this group, send email to
>>>>>> >>>>>> algogeeks+...@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>
>>>>>> >
>>>>>> >>>>>> .
>>>>>> >>>>>>
>>>>>> >>>>>
>>>>>> >>>>>  --
>>>>>> >>>>> You received this message because you are subscribed to the
>>>>>> Google
>>>>>> >>>>> Groups "Algorithm Geeks" group.
>>>>>> >>>>> To post to this group, send email to algo...@googlegroups.com.
>>>>>> >>>>> To unsubscribe from this group, send email to
>>>>>> >>>>> algogeeks+...@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>
>>>>>> >.
>>>>>> >>>>>
>>>>>> >>>>
>>>>>> >>>>  --
>>>>>> >> You received this message because you are subscribed to the Google
>>>>>> Groups
>>>>>> >> "Algorithm Geeks" group.
>>>>>> >> To view this discussion on the web visit
>>>>>> >> https://groups.google.com/d/**msg/algogeeks/-/SwuLNscTCOoJ<https://groups.google.com/d/msg/algogeeks/-/SwuLNscTCOoJ>
>>>>>> .
>>>>>> >>
>>>>>> >> To post to this group, send email to algo...@googlegroups.com.
>>>>>> >> To unsubscribe from this group, send email to
>>>>>> >> algogeeks+...@**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>
>>>>>> .
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > --
>>>>>> > Umer
>>>>>> >
>>>>>> > --
>>>>>> > You received this message because you are subscribed to the Google
>>>>>> Groups
>>>>>> > "Algorithm Geeks" group.
>>>>>> > To post to this group, send email to algo...@googlegroups.com.
>>>>>> > To unsubscribe from this group, send email to
>>>>>> > algogeeks+...@**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 algo...@googlegroups.com.
>>>>>> To unsubscribe from this group, send email to algogeeks+...@**
>>>>>> 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>
>>>>>> .
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Umer
>>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Algorithm Geeks" group.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msg/algogeeks/-/MCOQyzdtcAMJ.
>>>> 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.
>>>
>>
>>
>>
>> --
>> Umer
>>
>> --
>> 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.
>>
>
>
>
> --
> Mangal Dev
> Ph No. 7411627654
> Member Technical Staff
> Oracle India Pvt Ltd
> mangal....@oracle.com <mangal.d...@oracle.com>
>
>
>  --
> 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