21_二分查找
一、背景引入
请对一个有序数组进行二分查找 {1,8, 10, 89, 1000, 1234} ,输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数。
二、思路分析
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210319153437936.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2pycmhqd3c=,size_16,color_FFFFFF,t_70#pic_center)
三、代码实现
说明:增加了找到所有满足条件的元素下标的功能:
课后思考题:{1, 8, 10, 89, 1000, 1000, 1234}
当一个有序数组中,有多个相同的数值时,如何将所有的数值都查找到,比如这里的1000
import java.util.ArrayList;
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {
1, 8, 10 ,89, 1000, 1000, 1000, 1234};
//int resIndex = binarySearch(arr, 0, arr.length - 1, 1000);
//System.out.println("resIndex=" + resIndex);
ArrayList resIndexList = binarySearch2(arr, 0, arr.length - 1, 1000
|