@Pralaybi: You've got it right. Since h is proportional to the log of the 
smaller number, we also can say that the complexity is O(log^2 (smaller 
number)).
 
Dave

On Friday, November 23, 2012 2:09:01 PM UTC-6, pralaybi...@gmail.com wrote:

> @Dave: Could you please correct me if am wrong here.
> 1) So we are looking out for the worst case, and that happens when m and n 
> are consecutive Fibo numbers, being mutually prime to reach other.
> 2) Its taking 5 iterations to reduce the number of digits in the smaller 
> of m and n, by one. Assuming there are "h" digits in the smaller number 
> from now on.
> 3) Also, the computation cost is proportional to the number of digits, 
> hence cost is proportional to h. (Could you please elaborate a lil more on 
> this)
> 4) So net complexity is h*h = O(quadratic)
>
> On Fri, Nov 16, 2012 at 8:50 PM, Dave <dave_an...@juno.com 
> <javascript:>>wrote:
>
>> @Sonesh: Not so. The worst case for Euclid's algorithm is when the 
>> numbers are consecutive Fibonacci numbers. So (89,55) --> (55,34) --> 
>> (34,21) --> (21,13) --> (13,8) --> (8,5), so it took 5 steps to reduce the 
>> number of digits of the first number from 2 to 1. Asymptotically, the 
>> number of digits reduces by log_10(phi) =  log_10((1+sqrt(5))/2) ~= 0.209, 
>> where phi is the Golden Ratio, so it takes, on average, ~4.78 iterations to 
>> reduce the numbers by 1 digit, in the worst case. But still, we can say 
>> that Euclid's algorithm is O(log n).
>>  
>> Dave
>>
>> On Friday, November 16, 2012 6:40:58 PM UTC-6, sonesh wrote:
>>
>>> you see, in each step of recursion, the number of digits in *n* is 
>>> decrease by one(at least in worst case), so the complexity you can decide.
>>>
>>> On Tuesday, November 13, 2012 3:34:06 PM UTC+5:30, Shruti wrote:
>>>>
>>>> hi
>>>>
>>>> Can anyone help me find out the time complexity of recursive gcd 
>>>> algorithm (using euclid's algo)
>>>> i.e. for the following program :
>>>>
>>>> int gcd(int n,int m) //given n>m
>>>> {
>>>>    if(n%m==0)
>>>>        return m;
>>>>    else
>>>>         return gcd(m,n%m);
>>>>
>>>> }
>>>>
>>>> i think the soln is lg(a*b) but have no idea how..
>>>>
>>>>  -- 
>> 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/-/bCB-L41X6ukJ.
>>
>> 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.
>>
>
>

-- 


Reply via email to