package com.talong;
/**
* 迭代法实现二分查找
* 时间复杂度:O(lgN)
* 空间复杂度:O(1)
*/
public class BinarySearchIterate {
/**
* @param array 查找数组
* @param num 查找值
* @return 找到的数组索引,没有找到返回-1
*/
public static int search(int [] array,int num){
if(array.length==0){
return -1;
}
int begin=0,end=array.length-1;
while(begin<=end){
int middle=(begin+end)/2;
if(array[middle]==num){
return middle;
}else if(array[middle]<num){
begin=middle+1;
}else if(array[middle]>num){
end=middle-1;
}
}
return -1;
}
public static void main(String [] args){
int [] array=new int []{1,3,5,7,9,10,12,13,45};
int idx=search(array,3);
System.out.println(idx);
}
}
迭代法实现二分查找
最新推荐文章于 2022-03-12 19:08:24 发布
287

被折叠的 条评论
为什么被折叠?



