package com.xmjr.test;
public class Test {
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.binarySearch(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 8));
}
public int binarySearch(int[] data, int aim) {// 以int数组为例,aim为需要查找的数
int start = 0;
int end = data.length - 1;
int mid = (start + end) / 2;// a
while (data[mid] != aim && end > start) {// 如果data[mid]等于aim则死循环,所以排除
if (data[mid] > aim) {
end = mid - 1;
} else if (data[mid] < aim) {
start = mid + 1;
}
mid = (start + end) / 2;// b,注意a,b
}
return (data[mid] != aim) ? -1 : mid + 1;// 返回结果
}
}
public class Test {
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.binarySearch(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 8));
}
public int binarySearch(int[] data, int aim) {// 以int数组为例,aim为需要查找的数
int start = 0;
int end = data.length - 1;
int mid = (start + end) / 2;// a
while (data[mid] != aim && end > start) {// 如果data[mid]等于aim则死循环,所以排除
if (data[mid] > aim) {
end = mid - 1;
} else if (data[mid] < aim) {
start = mid + 1;
}
mid = (start + end) / 2;// b,注意a,b
}
return (data[mid] != aim) ? -1 : mid + 1;// 返回结果
}
}
本文介绍了一个简单的二分查找算法实现案例,通过Java代码演示了如何在一个有序整型数组中查找指定元素的位置。该算法使用迭代方式,通过不断缩小搜索范围直至找到目标值或搜索范围为空。
286

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



