From 87a30823566cd26cd7b1fb4a559e0f36d4e49382 Mon Sep 17 00:00:00 2001 From: liangjinglin Date: Sat, 25 Jan 2025 14:25:03 +0800 Subject: [PATCH] =?UTF-8?q?2025-01-25=20=E4=BA=8C=E5=88=86=E6=9F=A5?= =?UTF-8?q?=E6=89=BE=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/algorithm/BinarySearch.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/dataANDcalc/java/algorithm/BinarySearch.java diff --git a/src/dataANDcalc/java/algorithm/BinarySearch.java b/src/dataANDcalc/java/algorithm/BinarySearch.java new file mode 100644 index 0000000..76b5b9f --- /dev/null +++ b/src/dataANDcalc/java/algorithm/BinarySearch.java @@ -0,0 +1,45 @@ +package algorithm; + +import SortAlgori.MergeSort; + +public class BinarySearch { + + private int[] arr; + + public BinarySearch(int[] arr){ + this.arr = arr; + } + + /** + * 非递归实现 + * @param target + * @return + */ + private int search(int target){ + int left = 0; + int right = arr.length - 1; + while(left <= right){ + int mid = (left + right)/2; + if(target == arr[mid]){ + return mid; + } + if(target < arr[mid]){ + right = mid - 1; + } + if(target > arr[mid]){ + left = mid + 1; + } + } + return -1; + } + + public static void main(String[] args) { + int[] arr = new int[]{1,3,8,10,11,67,100}; + BinarySearch binarySearch = new BinarySearch(arr); + long startTime = System.currentTimeMillis(); + int search = binarySearch.search(100); + long endTime = System.currentTimeMillis(); + System.out.println("查找到的下标是:" + search); + System.out.println("查找所花费的时间:" + (endTime - startTime) + "ms"); + } +}