Skip to content

Commit 867f2f8

Browse files
realDuYuanChaogithub-actions
andauthored
Fixed bugs (#103)
* fixed binary search * fixed find max/min bugs * Formatted with Google Java Formatter Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
1 parent a9f2c15 commit 867f2f8

File tree

4 files changed

+6
-6
lines changed

4 files changed

+6
-6
lines changed

src/main/java/com/examplehub/maths/FindMaxRecursion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static int max(int[] numbers, int left, int right) {
2929
if (left == right) {
3030
return numbers[left];
3131
}
32-
int middle = (left + right) >> 1;
32+
int middle = left + (right - left) / 2;
3333
int leftMax = max(numbers, left, middle); /* find max in range[left, middle] */
3434
int rightMax = max(numbers, middle + 1, right); /* find max in range[middle + 1, right] */
3535
return Math.max(leftMax, rightMax);

src/main/java/com/examplehub/maths/FindMinRecursion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static int min(int[] numbers, int left, int right) {
2929
if (right == left) {
3030
return numbers[right];
3131
}
32-
int middle = (left + right) >> 1;
32+
int middle = left + (right - left) / 2;
3333
int leftMin = min(numbers, left, middle); /* find min in range[left, middle] */
3434
int rightMin = min(numbers, middle + 1, right); /* find min in range[middle + 1, right] */
3535
return Math.min(leftMin, rightMin);

src/main/java/com/examplehub/searches/BinarySearch.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public int search(int[] numbers, int key) {
1414
int left = 0;
1515
int right = numbers.length - 1;
1616
while (left <= right) {
17-
int mid = (left + right) >> 1;
17+
int mid = left + (right - left) / 2;
1818
if (key == numbers[mid]) {
1919
return mid;
2020
} else if (key > numbers[mid]) {
@@ -39,7 +39,7 @@ public <T extends Comparable<T>> int search(T[] array, T key) {
3939
int left = 0;
4040
int right = array.length - 1;
4141
while (left <= right) {
42-
int mid = (left + right) >> 1;
42+
int mid = left + (right - left) / 2;
4343
if (key.compareTo(array[mid]) == 0) {
4444
return mid;
4545
} else if (key.compareTo(array[mid]) > 0) {

src/main/java/com/examplehub/searches/BinarySearchRecursion.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public int search(int[] numbers, int left, int right, int key) {
2020
if (left > right) {
2121
return -1;
2222
}
23-
int mid = (left + right) >> 1;
23+
int mid = left + (right - left) / 2;
2424
if (key == numbers[mid]) {
2525
return mid;
2626
} else if (key >= numbers[mid]) {
@@ -49,7 +49,7 @@ public <T extends Comparable<T>> int search(T[] array, int left, int right, T ke
4949
if (left > right) {
5050
return -1;
5151
}
52-
int mid = (left + right) >> 1;
52+
int mid = left + (right - left) / 2;
5353
if (key.compareTo(array[mid]) == 0) {
5454
return mid;
5555
} else if (key.compareTo(array[mid]) > 0) {

0 commit comments

Comments
 (0)