Given a sorted array of length n, find the number in array that appears more than or equal to n/2 times. It is given that such element always exists.
Examples:
Input : 2 3 3 4 Output : 3 Input : 3 4 5 5 5 Output : 5 Input : 1 1 1 2 3 Output : 1
To find that number, we traverse the array and check the frequency of every element in array if it is greater than or equals to n/2 but it requires extra space and time complexity will be O(n).
But we can see that the if there is number that comes more than or equal to n/2 times in a sorted array, then that number must be present at the position n/2 i.e. a[n/2].
Implementation:
// C++ code to find majority element in a // sorted array #include <iostream> using namespace std;
int findMajority( int arr[], int n)
{ return arr[n / 2];
} int main()
{ int arr[] = { 1, 2, 2, 3 };
int n = sizeof (arr) / sizeof (arr[0]);
cout << findMajority(arr, n);
return 0;
} |
// Java code to find majority element in a // sorted array public class Test {
public static int findMajority( int arr[], int n)
{
return arr[n / 2 ];
}
public static void main(String args[])
{
int arr[] = { 1 , 2 , 2 , 3 };
int n = arr.length;
System.out.println(findMajority(arr, n));
}
} |
# Python 3 code to find # majority element in a # sorted array def findMajority(arr, n):
return arr[ int (n / 2 )]
# Driver Code arr = [ 1 , 2 , 2 , 3 ]
n = len (arr)
print (findMajority(arr, n))
# This code is contributed by Smitha. |
// C# code to find majority element in a // sorted array using System;
public class GFG {
public static int findMajority( int []arr, int n)
{
return arr[n / 2];
}
// Driver code
public static void Main()
{
int []arr = { 1, 2, 2, 3 };
int n = arr.Length;
Console.WriteLine(findMajority(arr, n));
}
} // This code is contributed by vt_m. |
<?php // PHP code to find majority // element in a sorted array function findMajority( $arr , $n )
{ return $arr [ intval ( $n / 2)];
} // Driver Code
$arr = array (1, 2, 2, 3);
$n = count ( $arr );
echo findMajority( $arr , $n );
// This code is contributed by Sam007 ?> |
<script> // Javascript code to find majority element in a // sorted array function findMajority(arr, n)
{ return arr[(Math.floor(n / 2))];
} // driver code let arr = [ 1, 2, 2, 3 ];
let n = arr.length;
document.write(findMajority(arr, n));
</script> |
2
Time Complexity : O(1)
Auxiliary Space: O(1)
Related Articles :
Majority element in an unsorted array
Check for majority element in a sorted array