二分查找
算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。
代码实现:
/**
* 二分法查找
* @author liujunwei1016
*
*/
public class TestBinarySearch {
public static void main(String[] args) {
int[] arr = {7, 15, 78, 5, 99, 52,24,19,33,46};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
System.out.println(myBinarySearch(arr, 36));
}
public static int myBinarySearch(int[] arr, int value) {
int low =0;
int high = arr.length-1;
while(low<=high) {
int mid = (low+high)/2;
if(value == arr[mid]) {
return mid;
}
if(value > arr[mid]) {
low = mid +1;
}
if(value < arr[mid]) {
high = mid -1;
}
}
return -1;
}
}
本文详细介绍了二分查找算法的基本思想及其实现过程。通过对比序列中的中间元素与目标值,算法能够快速定位到目标元素的位置,适用于已排序的数据集。文章提供了具体的代码示例,展示了如何使用二分查找在数组中查找特定值。
7574

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



