Skip to content

Commit e0d71ad

Browse files
authored
Update IterativeBinarySearch.java
1 parent af1d9d1 commit e0d71ad

File tree

1 file changed

+17
-19
lines changed

1 file changed

+17
-19
lines changed

src/main/java/com/thealgorithms/searches/IterativeBinarySearch.java

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,28 +28,26 @@ public final class IterativeBinarySearch implements SearchAlgorithm {
2828
* @return the index of key in the array or -1 if not found
2929
*/
3030
@Override
31-
public <T extends Comparable<T>> int find(T[] array, T key) {
32-
int l;
33-
int r;
34-
int k;
35-
int cmp;
31+
public <T extends Comparable<T>> int find(T[] array, T key) {
32+
if (array == null || array.length == 0) {
33+
return -1;
34+
}
3635

37-
l = 0;
38-
r = array.length - 1;
36+
int l = 0;
37+
int r = array.length - 1;
3938

40-
while (l <= r) {
41-
k = (l + r) >>> 1;
42-
cmp = key.compareTo(array[k]);
39+
while (l <= r) {
40+
int mid = (l + r) >>> 1;
41+
int cmp = key.compareTo(array[mid]);
4342

44-
if (cmp == 0) {
45-
return k;
46-
} else if (cmp < 0) {
47-
r = --k;
48-
} else {
49-
l = ++k;
50-
}
43+
if (cmp == 0) {
44+
return mid;
45+
} else if (cmp < 0) {
46+
r = mid - 1;
47+
} else {
48+
l = mid + 1;
5149
}
52-
53-
return -1;
5450
}
51+
52+
return -1;
5553
}

0 commit comments

Comments
 (0)