@Phoenix: If elem does not exist in the array and we did not put it in the 
array, then the loop would exceed the array. But by setting arr[0] to elem, 
we ensure that the loop does stop.
 
Dave

On Monday, October 8, 2012 6:52:27 AM UTC-5, phoenix wrote:

> @Dave: Nice solution. Can you clarify why you need to store the first 
> element in a temp variable and put 'elem' in the first position? If elem 
> was already first in array then it makes no difference. If elem was not 
> first but somewhere in between, the loop will break there when coming from 
> behind and size will have the index right? Why do we need to store elem in 
> first position according to your code?
>
> On Sun, Oct 7, 2012 at 3:01 PM, Mangal Dev Gupta 
> <dev....@gmail.com<javascript:>
> > 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....@gmail.com<javascript:>
>> > 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 
>>> <kanik...@gmail.com<javascript:>
>>> > 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` <vip...@gmail.com <javascript:>>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 algo...@googlegroups.com<javascript:>
>>>>> .
>>>>> To unsubscribe from this group, send email to 
>>>>> algogeeks+...@googlegroups.com <javascript:>.
>>>>> 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 algo...@googlegroups.com<javascript:>
>>>> .
>>>> To unsubscribe from this group, send email to 
>>>> algogeeks+...@googlegroups.com <javascript:>.
>>>> 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 algo...@googlegroups.com<javascript:>
>>> .
>>> To unsubscribe from this group, send email to 
>>> algogeeks+...@googlegroups.com <javascript:>.
>>> 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
>> manga...@oracle.com <javascript:>
>>
>>
>>  -- 
>> 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<javascript:>
>> .
>> To unsubscribe from this group, send email to 
>> algogeeks+...@googlegroups.com <javascript:>.
>> For more options, visit this group at 
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>
>
>
> -- 
>  "Even the measly pawn draws respect from the powerful king as it has the 
> power to become a queen one day..Respect everyone in life!"
>
>

-- 
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/-/erduMpknTJEJ.
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