2025-01-25 二分查找法

This commit is contained in:
liangjinglin 2025-01-25 14:25:03 +08:00
parent b0b505b5f4
commit 87a3082356

View File

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