二分查找算法(非递归)
非递归二分查找介绍
二分查找算法只适用于从有序的数列中进行查找,将数列排序后在进行查找
二分查找法的运行时间为对数时间O(log2n),即查找到需要的目标位置最多只需要log2n步。
public class 二分查找 {
public static void main(String[] args) {
int arr[]={1,2,35,57,78,99,100};
System.out.println(run(arr, 99));
}
public static int run(int arr[],int target){
int left = 0;
int right = arr.length-1;
while (left<=right){
int mid = (left + right) / 2;
if (arr[mid] == target){
return mid;
}else if (arr[mid] > target){
right = mid-1;
}else{
left = mid + 1;
}
}
return -1;
}
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 李福腾の博客!