search algorithms

Run Settings
LanguageJava
Language Version
Run Command
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)); } }
Editor Settings
Theme
Key bindings
Full width
Lines