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"); + } +}