Given the following algorithms below give a bigOh characteri
Solution
for(int i=0; i<arr.length;++i ) ===========> Runs for n+1 times , as array length is n and 1 for failure case
for(int j=0; j<arr.length;++j ) ===========> Runs for n(n+1)/2 times , runs n times because of outer for loop and n , n-1, n-2 , n-3 .. . .1 , so total it runs n(n-1)/2
if(i!=j . && arr[i] + arri[j] = 2) ===========> Runs for nearly n(n-1)/2times , runs n times because of outer for loop and n , n-1, n-2 , n-3 .. . .1 , so total it runs n(n-1)/2
return true --------> Once
So overall time complexity is
T(n) = n + n*(n-1)/2 + n*(n+1)/2 + 1
=> T(n) = O(n2)
2) for(int i=0; i<42 ++i ) ---> Runs for max 43 times irrespective of n [once for failure scenarion when i becomes 42]
n = n +i =======Runs for max 42 times irrespective of n
So above code doesnot depend on n
So T(n) = 42 , which is a constant
=> T(n) = O(1)
Thanks, let me know if there is anything.
