***********IN JAVA************* Given an array of integers A, find the Majority
ID: 3889960 • Letter: #
Question
***********IN JAVA*************
Given an array of integers A, find the Majority Element.
Majority Element in an array of size N in an element that appears more than N/2 times.
Write a function:
int findMajority(int[] A)
that accepts an array A. The function should return the Majority Element in the array. If no majority element then return 0.
Use following methods to solve the problem:
int findCandidate(int a[])
that accepts the array and find a candidate for the majority
boolean isMajority(int a[], int cand)
that accept the array and the candidate element and check if the candidate occurs more than n/2 times
Input
5
1 2 1 2 2
Where,
First line represents the size of an array.
Second line represents array elements separated by single space.
Output
2
Here for the given array, 2 appears 3 times in the array of size 5.
No space after the element in the output.
Assume that,
N is an integer within the range [1 to 10000].
Array elements are within the range [-2147483648 to 2147483647].
*******Use the following class driver with no modifications to it!********
class DriverMain{
public static void main(String args[]){
HW3_P4 hw3P4 = new HW3_P4();
Scanner s = new Scanner(System.in);
int N = s.nextInt();
int A[] = new int[N];
for (int i = 0; i < N; i++) {
A[i] = s.nextInt();
}
System.out.print(hw3P4.findMajority(A));
}
}
***********************************************************************************
---And use the following class HW3_P4 that was refered to in main----
class HW3_P4{
public int findMajority(int[] array){
}
/* Function to find the candidate for Majority */
int findCandidate(int a[]) {
}
/* Function to check if the candidate occurs more than n/2 times */
boolean isMajority(int a[], int cand) {
}
}
**********************************************************************************************
Try not to use maps, because I need all three functions to be used and I'm stumped at the moment.
Comments in the code would be much appreciated as well so I can understand better!
Explanation / Answer
DriverMain.java
class DriverMain {
public static void main(String args[]) {
HW3_P4 hw3P4 = new HW3_P4();
Scanner s = new Scanner(System.in);
int N = s.nextInt();
int A[] = new int[N];
for (int i = 0; i < N; i++) {
A[i] = s.nextInt();
}
System.out.print(hw3P4.findMajority(A));
}
}
class HW3_P4 {
public int findMajority(int[] array) {
int n = findCandidate(array);
return n;
}
/* Function to find the candidate for Majority */
int findCandidate(int a[]) {
boolean bool;
for (int i = 0; i < a.length; i++) {
bool = isMajority(a, a[i]);
if (bool)
return a[i];
}
return 0;
}
/* Function to check if the candidate occurs more than n/2 times */
boolean isMajority(int a[], int cand) {
int count = 0;
for (int i = 0; i < a.length; i++) {
if (cand == a[i]) {
count++;
}
}
if (count > a.length / 2)
return true;
else
return false;
}
}
_____________________
Output:
5
1 2 1 2 2
2
_____________Could you rate me well.Plz .Thank You
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.