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 <rafiwie...@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>
>>>>>>> .
>>>>>>>
>>>>>>
>>>>>>  --
>>>>>> 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>
>>>>> .
>>>>>
>>>>
>>>>  --
>>>> 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 view this discussion on the web visit
> https://groups.google.com/d/msg/algogeeks/-/SwuLNscTCOoJ.
>
> 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.

Reply via email to