-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBinarySearch.java
More file actions
34 lines (31 loc) · 971 Bytes
/
BinarySearch.java
File metadata and controls
34 lines (31 loc) · 971 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package searchtAlgorithms;
/**
*
* @author Vladimir Aca
*/
public class BinarySearch {
public static int find(int[] currentArray, int target, int low, int high){
if(low == high){
if(currentArray[low] == target){
return low;
}
return -1;
}
int midPosition = getMidPosition(low, high);
if(target > currentArray[midPosition]){
return find(currentArray, target, midPosition + 1, high);
}else if(target < currentArray[midPosition]){
return find(currentArray, target, low, midPosition - 1);
}else{
return midPosition;
}
}
public static int getMidPosition(int low, int high){
return low + ((high - low)/2);
}
}