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

Reply via email to