From 4c54be5bfc1b9e198b8336e5dc8aa2e17b9e654a Mon Sep 17 00:00:00 2001 From: liangjinglin Date: Sat, 18 Jan 2025 16:26:00 +0800 Subject: [PATCH] =?UTF-8?q?2025-01-18=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 --- src/dataANDcalc/java/Search/BinarySearch.java | 47 +++++++++++++++++++ .../java/SortAlgori/MergeSort.java | 8 ++++ 2 files changed, 55 insertions(+) create mode 100644 src/dataANDcalc/java/Search/BinarySearch.java diff --git a/src/dataANDcalc/java/Search/BinarySearch.java b/src/dataANDcalc/java/Search/BinarySearch.java new file mode 100644 index 0000000..1ac39aa --- /dev/null +++ b/src/dataANDcalc/java/Search/BinarySearch.java @@ -0,0 +1,47 @@ +package Search; + +import SortAlgori.MergeSort; + +public class BinarySearch { + + private int[] arr; + + public BinarySearch(int[] arr){ + this.arr = arr; + } + + private int search(int left, int right, int value){ + int index = -1; + if(left >= right){ + if(arr[left] == value){ + return left; + } + return index; + } + int mid = (left + right)/2; + if(value == arr[mid]){ + return mid; + } + if(value > arr[mid]){ + index = search(mid + 1, right, value); + } + if(value < arr[mid]){ + index = search(left, mid - 1, value); + } + return index; + } + + public static void main(String[] args) { + int[] arr = new int[]{1,9,11,-1,34,89,23,53,124,52}; + MergeSort mergeSort = new MergeSort(arr); + mergeSort.mergeSort(0, arr.length-1); + System.out.println("排序后的序列:"); + mergeSort.show(); + BinarySearch binarySearch = new BinarySearch(mergeSort.getArr()); + long startTime = System.currentTimeMillis(); + int search = binarySearch.search(0, arr.length-1, 124); + long endTime = System.currentTimeMillis(); + System.out.println("查找到的下标是:" + search); + System.out.println("查找所花费的时间:" + (endTime - startTime) + "ms"); + } +} diff --git a/src/dataANDcalc/java/SortAlgori/MergeSort.java b/src/dataANDcalc/java/SortAlgori/MergeSort.java index 4950273..4ad4d89 100644 --- a/src/dataANDcalc/java/SortAlgori/MergeSort.java +++ b/src/dataANDcalc/java/SortAlgori/MergeSort.java @@ -6,6 +6,14 @@ public class MergeSort { private int[] temp; + public int[] getArr() { + return arr; + } + + public void setArr(int[] arr) { + this.arr = arr; + } + public MergeSort(int[] arr){ this.arr = arr; // this.arr = new int[]{8,4,5,7,1,3,6,2};