class Main {
public int forwardSearch(char target, char[] data){
int result = -1;
for(int i=0;i<data.length;i++){
char temp = data[i];
if(temp == target){
return i;
}
}
return result;
}
public int reverseSearch(char target, char[] data) {
int result = -1;
for (int i = data.length - 1; i > -1; i--) {
char temp = data[i];
if (temp == target) {
return i;
}
}
return result;
}
public int middleSearch(char target, char[] data){
char[] firstHalf = new char[data.length/2];
char[] secondHalf = new char[data.length - data.length/2];
for(int i=0;i<firstHalf.length;i++){
firstHalf[i]=data[i];
}
for(int i=0;i<secondHalf.length;i++){
secondHalf[i] = data[i + firstHalf.length];
}
int result1 = forwardSearch(target, firstHalf);
int result2 = reverseSearch(target, secondHalf);
if(result1 > -1) return result1;
else if (result2 > -1) return result2 + firstHalf.length;
else return -1;
}
public static void main(String[] args) {
char target = 'm';
char[] data = {'a', 'b', 'c', 'm', 'x', 'y', 'z'};
Main instance = new Main();
System.out.println(instance.middleSearch(target, data));
}
}