您的位置:首页 > 编程语言 > Java开发

二分法快速查找算法

2017-02-22 22:27 232 查看
//二分法快速查找数组中的元素

public class TestSearch {
public static void main(String[] args) {
int a[] = {1,3,6,8,9,10,12,18,20,34};
int i = 12;
System.out.println(binarySearch(a,i));
}

public static int binarySearch(int a[],int num) {
if(a.length==0) return  -1;
int start = 0;
int end = a.length - 1;
int m = (start + end) / 2;//最开始中间那个位置
while(start <= end) {//循环条件  只要start<=end  就要接着找
if(num == a[m]) return m;//相等时返回 
if(num > a[m]) { //如果要查找的值>中间那个值  那么start相应变为中间那个位置+1
start = m + 1;
}
if(num <a[m]) {
end = m+1;
}
m = (start + end) / 2;
}
return -1;//如果在数组中没有找到想要的值  那么返回-1
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法