adding old solved challenges
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import java.util.Arrays;
|
||||
|
||||
public class BinarySearch {
|
||||
public static void main(String[] args) {
|
||||
int[] seriesofNumbers = { 12, 14, 16, 17, 85, 5, 42, 23, 54, 96, 56, 45, 43, 32, 99, 33, 6, 77, 66, 98, 56, 43, 21,
|
||||
22 };
|
||||
|
||||
System.err.println(BinarySearchDo(seriesofNumbers, 33));
|
||||
}
|
||||
|
||||
public static int BinarySearchDo(int[] sortedNumbers, int wantedNumber) {
|
||||
// let's set the first and last indecies of the array
|
||||
int left = 0;
|
||||
int right = sortedNumbers.length - 1;
|
||||
// we sort the array just in case it is a series of random numbers
|
||||
Arrays.sort(sortedNumbers);
|
||||
for (int sortedNum : sortedNumbers) {
|
||||
System.out.print(sortedNum + " ");
|
||||
}
|
||||
System.out.println("");
|
||||
// let's split the array into 2 and compare if the middle number is lower or
|
||||
// larger than the wanted number
|
||||
while (left <= right) {
|
||||
int middleIndex = (left + right) / 2;
|
||||
int middleNumber = sortedNumbers[middleIndex];
|
||||
System.out.println("The last index of this Array is " + right + " and the Middile index is " + middleIndex
|
||||
+ " ==> " + middleNumber);
|
||||
System.out.println("");
|
||||
if (wantedNumber == middleNumber) {
|
||||
System.out.println("");
|
||||
return middleIndex;
|
||||
}
|
||||
if (wantedNumber < middleNumber) {
|
||||
right = middleIndex - 1;
|
||||
}
|
||||
if (wantedNumber > middleNumber) {
|
||||
left = middleIndex + 1;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user