Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

***********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