An array A[1 n] is said to have a majority element if more than half of its entries are the same Given an

Question

. An array A[1 . . . n] is said to have a majority element if more than half of its entries are the same. Given an

array, the task is to design an efficient algorithm to tell whether the array has a majority element, and, if so, to find that element. The elements of the array are not necessarily from some ordered domain like the integers, and so there can be no comparisons of the form: is A[i] A[j]? However you can answer questions of the form: is A[i] = A[j]? in constant time. Show how to solve this problem in O(n log n) time. You can explain the algorithm in pseudocode or in plain english. Also, develop a recurrence relation for the algorithm, and solve it to prove the O(n log n) runtime.

Engineering Technology