GATE CSE
First time here? Checkout the FAQ!
x
0 votes
165 views
Let an array A[1,....n] has n elements, and every element of an array is less than or equal to n. An element is said to be "majority element" if it is occurred in more than n/2 positions of an array. what is the time complexity to check whether the majority element exist or not?
asked in Algorithms by (41 points)  
retagged by | 165 views

3 Answers

+1 vote
Not exactly the array is said to be sorted here . My solution will take O(n) time but a O(n) space as well . The keys are less than n we can use a direct addressing table here . take an array of size n;
take the mod of all the element 1 by one and increment the array[element%n] which will take O(n) time. after the whole operation find the largest in O(n) . O(n) + O(n) time complexity.
answered by Veteran (14.1k points)  

If ans is O(n) with space O(n) then,

I think question should also mention that all elements are non-negative. right ?

 

I think It has stated that input array is 1 to n. That stand for positive number only.
I think, That is index of the array.
0 votes

If the Given Array is Sorted than it is pretty easy 
U can look into solution here


http://www.geeksforgeeks.org/check-for-majority-element-in-a-sorted-array/

If Not Sorted than there is Moore's Voting Algorithm Which can be Done in O(n)

 

answered by Loyal (3.8k points)  
0 votes
//Deleted

As I didn't see geeksforgeeks solution

I had mention about binary search algorithm
answered by (95 points)  

Related questions

+2 votes
3 answers
1
asked in Algorithms by radha gogia Boss (7.6k points)   | 222 views


Top Users Sep 2017
  1. Habibkhan

    6826 Points

  2. Arjun

    2310 Points

  3. Warrior

    2302 Points

  4. nikunj

    1980 Points

  5. A_i_$_h

    1922 Points

  6. manu00x

    1750 Points

  7. rishu_darkshadow

    1744 Points

  8. Bikram

    1744 Points

  9. SiddharthMahapatra

    1718 Points

  10. makhdoom ghaya

    1690 Points


26,033 questions
33,618 answers
79,661 comments
31,066 users