二分查找原理
参数:顺序表 待查关键字
二分查找是基于顺序存储结构的一种高效的查找方式,也称折半查找;
顾名思义折半查找就是每次都将顺序表截取为当前的一半
具体代码如下
public class Binary_Search {
int binarySearch(int list[], int low, int hign, int key) {
if (list == null) {
return -1;
}
while (low <= hign) {
int mid = (low + hign) / 2; //确定中间值
if (key == list[mid]) { //1.key值与中间值相等
return mid;
} else if (key > list[mid]) {//2.key值大于中间值
low = mid + 1;
} else { //3.key值小于中间值
hign = mid - 1;
}
}
return -1;
}
}
//测试代码
public class Text {
public static void main(String[] args) {
Binary_Search b = new Binary_Search();
int[] list ={1,3,5,7,9,11,14,16,17,20};
int i = b.binarySearch(list, 0, list.length - 1, 1);
//改变最后的一个key值可以改变输出的i值 通过下一段的输出代码就可以确定是不是我们设定的key值
System.out.println(list[i]);
}
}