二分法查找算法
上一篇 /
下一篇 2018-06-22 11:25:11
/ 个人分类:Java
最近看到一些关于面试的文章,看到其中一个问题是写下二分法算法,然后自己琢磨了下,写了一份java代码,分享一下。
public static int search(double dt, List<Double> dl){
if(dl.isEmpty()) return -1;
int start = 0;
int end = dl.size()-1;
while(true){
int middle = (int)Math.floor(start+(end-start)/2);
if(dt==dl.get(middle)) return middle;
if(dt==dl.get(middle+1)) return middle+1;
if(middle == start || middle == end) return -1;
if(dt<dl.get(middle)) end = middle;
else start = middle;
}
}
说明一下:dt是要查找的值,dl是一个列表,在dl中查找dt,返回索引值,如果没有找到,则返回-1。
收藏
举报
TAG: