vaibhavsinh
BAN USERpackage algorithms.sorting;
import java.util.Arrays;
public class P2 {
public static void main(String[] args) {
Integer[] words = new Integer[]{
5, 6, -2, -1, 1, 2, 3, 4
};
int foundIndex = findElement(words, -2);
if(foundIndex == -1) {
System.out.println("Not Found");
}
else {
System.out.println("Found at : " + String.valueOf(foundIndex) + " : Word : " + words[foundIndex]);
}
}
private static int findElement(Integer[] words, Integer element) {
int mid = words.length / 2;
if(words[mid].equals(element)) {
return mid;
}
if(words.length == 1) {
return -1;
}
if(words[mid] > element && (words[mid] < words[0] || element > words[0])) {
return findElement(Arrays.copyOfRange(words, 0, mid), element);
}
else {
return findElement(Arrays.copyOfRange(words, mid + 1, words.length), element);
}
}
}
package algorithms.sorting;
import java.util.Arrays;
public class P1 {
public static void main(String[] args) {
String[] words = new String[]{
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"
};
int rotateIndex = findRotateIndex(words);
if(rotateIndex == -1) {
System.out.println("Not Rotated");
}
else {
System.out.println("Rotated at : " + String.valueOf(rotateIndex) + " : Word : " + words[rotateIndex]);
}
}
private static int findRotateIndex(String[] words) {
if(words.length == 1) {
return -1;
}
int mid = words.length / 2;
int prevResult = words[mid].compareTo(words[mid - 1]);
int nextResult = words[mid].compareTo(words[mid + 1]);
int firstResult = words[mid].compareTo(words[0]);
int lastResult = words[mid].compareTo(words[words.length - 1]);
if(nextResult > 0) {
return mid + 1;
}
if(prevResult < 0) {
return mid;
}
else if(lastResult > 0) {
return findRotateIndex(Arrays.copyOfRange(words, mid + 1, words.length));
}
else {
return findRotateIndex(Arrays.copyOfRange(words, 0, mid));
}
}
}
Repsherrymrex, Computer Scientist at CGI-AMS
I am Sherry from West Palm Beach USA, I started my journey in 2016 as a yoga teacher. I like ...
- vaibhavsinh December 05, 2017