@Umer: I say that you forgot to increment i and decrement j in the loop. 
But you don't need any loop-counting comparisons at all. 
 
Dave

On Tuesday, October 2, 2012 3:36:58 AM UTC-5, Umer Farooq 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 <javascript:>>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 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 view this discussion on the web visit 
https://groups.google.com/d/msg/algogeeks/-/eakrSzF7tY0J.
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