From bcdc3f02d21b99c65119a9b59356c461e0c7c4c8 Mon Sep 17 00:00:00 2001 From: Sourav Date: Tue, 13 Apr 2021 23:34:25 +0530 Subject: [PATCH 1/3] Formula to find median in BS changed --- Searches/BinarySearch.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Searches/BinarySearch.java b/Searches/BinarySearch.java index b7dc37dc9267..9e750ae51405 100644 --- a/Searches/BinarySearch.java +++ b/Searches/BinarySearch.java @@ -45,7 +45,8 @@ private > int search(T array[], T key, int left, int rig if (right < left) return -1; // this means that the key not found // find median - int median = (left + right) >>> 1; + //int median = (left + right) >>> 1; + int median = left + ((right-left) >>> 1) int comp = key.compareTo(array[median]); if (comp == 0) { From 70800ff4de67b2cfd3a3a15b8c0cb534730008e1 Mon Sep 17 00:00:00 2001 From: Du Yuanchao Date: Wed, 14 Apr 2021 11:45:15 +0800 Subject: [PATCH 2/3] Fixed bugs --- Searches/BinarySearch.java | 1 - 1 file changed, 1 deletion(-) diff --git a/Searches/BinarySearch.java b/Searches/BinarySearch.java index 9e750ae51405..9e81460f0787 100644 --- a/Searches/BinarySearch.java +++ b/Searches/BinarySearch.java @@ -45,7 +45,6 @@ private > int search(T array[], T key, int left, int rig if (right < left) return -1; // this means that the key not found // find median - //int median = (left + right) >>> 1; int median = left + ((right-left) >>> 1) int comp = key.compareTo(array[median]); From b6258ed9e52963f5ec93a51bc9800ec7d8c0bc25 Mon Sep 17 00:00:00 2001 From: Du Yuanchao Date: Wed, 14 Apr 2021 11:47:25 +0800 Subject: [PATCH 3/3] fixed binary search bug --- Searches/BinarySearch.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Searches/BinarySearch.java b/Searches/BinarySearch.java index 9e81460f0787..3bb9c562bfde 100644 --- a/Searches/BinarySearch.java +++ b/Searches/BinarySearch.java @@ -45,7 +45,7 @@ private > int search(T array[], T key, int left, int rig if (right < left) return -1; // this means that the key not found // find median - int median = left + ((right-left) >>> 1) + int median = left + ((right-left) >>> 1); int comp = key.compareTo(array[median]); if (comp == 0) {