From 4641b59de9a043ea2012a1bb00e243fb32789ba6 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 21 Feb 2020 17:16:38 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BA=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Eugene Kortov --- jcf.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/jcf.md b/jcf.md index bbc6727..fd92ed4 100644 --- a/jcf.md +++ b/jcf.md @@ -612,7 +612,43 @@ PhantomReference при вызове метода `get()` возвращает Пример кода двоичного поиска: ```java -package test2; +public class Q { + public static void main(String[] args) { + Q q = new Q(); + q.binSearch(); + } + + private void binSearch() { + int[] inpArr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; + Integer result = binSearchF(inpArr, 1, 0, inpArr.length - 1); + System.out.println("-----------------------"); + result = binSearchF(inpArr, 2, 0, inpArr.length - 1); + System.out.println("Found at position " + result); + } + + private Integer binSearchF(int[] inpArr, int searchValue, int low, int high) { + Integer index = null; + while (low <= high) { + System.out.println("New iteration, low = " + low + ", high = " + high); + int mid = (low + high) / 2; + System.out.println("trying mid = " + mid + " inpArr[mid] = " + inpArr[mid]); + if (inpArr[mid] < searchValue) { + low = mid + 1; + System.out.println("inpArr[mid] (" + inpArr[mid] + ") < searchValue(" + searchValue + "), mid = " + mid + + ", setting low = " + low); + } else if (inpArr[mid] > searchValue) { + high = mid - 1; + System.out.println("inpArr[mid] (" + inpArr[mid] + ") > searchValue(" + searchValue + "), mid = " + mid + + ", setting high = " + high); + } else if (inpArr[mid] == searchValue) { + index = mid; + System.out.println("found at index " + mid); + break; + } + } + return index; + } +} import java.util.HashMap; import java.util.IdentityHashMap;