if all values x are known to be contiguous then I think it will take o(1) time because it will be majority element if it occurs more than n/2 times as x must be at the middle.
so if mid=(low+high)/2 and x==a[mid]then x is majority element otherwise not. just check....let me know. On Thu, Feb 9, 2012 at 11:40 PM, Don <[email protected]> wrote: > It can't be done in O(log n) unless the array is sorted or there is > some other special property, for example, if all values x are known to > be contiguous, allowing you to use a binary search to find the first > and last location of x. > > In the general case it is impossible in O(log n) because you have to > examine at least n/2 elements to reach a conclusion. In some cases you > must examine all n elements. > > Don > > On Feb 8, 1:45 pm, Prakhar Jain <[email protected]> wrote: > > Hello everyone, > > > > suppose we have an array of size n and a number, say x, and we have to > > determine whether the number x is present in the array more then n/2 > times > > or not....? > > can we have an O(log n) algo for determining it......?..pls help...!!! > > > > -- > > -- > > Prakhar Jain > > IIIT Allahabad > > B.Tech IT 3rd Year > > Mob no: +91 9454992196 > > E-mail: [email protected] > > [email protected] > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > > -- Regards.... Sanjiv Yadav MobNo.- 8050142693 Email Id- [email protected] -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
