GATE CSE
First time here? Checkout the FAQ!
x
+1 vote
352 views
Consider an array ‘A’ with 2m elements. The elements in odd position are sorted in non-increasing order that is A[1] >= A[3] >= A[5]......A[2m-1] The elements in even position are sorted in non-decreasing order, that is A[2]<= A[4] <= A[6].....A[2m]. Which of the following method is recommended for finding if a given number is in array?
asked in Algorithms by Boss (6.1k points)   | 352 views
can someone give me code and recurrence relation for this?

2 Answers

+5 votes

The proper way to do is :

a) Implement binary search by a little modification in finding the middle index for both the 2 same sized subarrays..

b) If found , then report the element else continue recursively..

So the time complexity will be O(logm + logm)  = O(2logm) = O(logm) 

answered by Veteran (68.7k points)  
Yes, also in iterative version of binary search, we need to we need to increase (or) decrease index of mid by factor of $2$
What would be the space complexity if we will apply binary search on odd indices and even indices separately?
space complexity is still O(m) exact i can say 2m +m(store half) +m(store half) = 4m
To find space complexity of recursive procedure , we consider the height of the corresponding recursion tree..As the recursion tree of binary search will contain O(logn) levels whatever the case may be so the space complexity due to function call will be : O( logn)
(logn) is extra space right ?
Yup space required for function call overhead
0 votes
what i whould recommend is that seperate the give array into two arrays

1 elements in odd positions in non - increasing order

2. elements in even position in non - decreasing order

seperate this two arrays and store them in wo seperate arrays

and run the binary search on the both arrays  the time complexity will be

time to seperate and store in different arrays is n  (as they are n elements )

binary search (logm+logm)
answered by Active (1.9k points)  


Top Users Aug 2017
  1. ABKUNDAN

    4658 Points

  2. Bikram

    4130 Points

  3. akash.dinkar12

    3144 Points

  4. rahul sharma 5

    2920 Points

  5. manu00x

    2682 Points

  6. makhdoom ghaya

    2390 Points

  7. just_bhavana

    2058 Points

  8. Tesla!

    1782 Points

  9. pawan kumarln

    1574 Points

  10. learner_geek

    1558 Points


24,892 questions
31,967 answers
74,210 comments
30,083 users