2025-01-25 二分查找法
This commit is contained in:
parent
b0b505b5f4
commit
87a3082356
45
src/dataANDcalc/java/algorithm/BinarySearch.java
Normal file
45
src/dataANDcalc/java/algorithm/BinarySearch.java
Normal 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");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user