二分法查找算法

上一篇 / 下一篇  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:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar