diff --git a/src/main/java/com/thealgorithms/searches/IterativeBinarySearch.java b/src/main/java/com/thealgorithms/searches/IterativeBinarySearch.java index 05fab0534267..89eb18a6311d 100644 --- a/src/main/java/com/thealgorithms/searches/IterativeBinarySearch.java +++ b/src/main/java/com/thealgorithms/searches/IterativeBinarySearch.java @@ -28,28 +28,26 @@ public final class IterativeBinarySearch implements SearchAlgorithm { * @return the index of key in the array or -1 if not found */ @Override - public > int find(T[] array, T key) { - int l; - int r; - int k; - int cmp; +public > int find(T[] array, T key) { + if (array == null || array.length == 0) { + return -1; + } - l = 0; - r = array.length - 1; + int l = 0; + int r = array.length - 1; - while (l <= r) { - k = (l + r) >>> 1; - cmp = key.compareTo(array[k]); + while (l <= r) { + int mid = (l + r) >>> 1; + int cmp = key.compareTo(array[mid]); - if (cmp == 0) { - return k; - } else if (cmp < 0) { - r = --k; - } else { - l = ++k; - } + if (cmp == 0) { + return mid; + } else if (cmp < 0) { + r = mid - 1; + } else { + l = mid + 1; } - - return -1; } + + return -1; }