结果是这样的 比如 1 3 4 6 7 8几个数,它要折半查找5 ,则key的值为5.
min =0; max = 5; mid =2;
即arr[mid]=4,而key =5>4,所以min=mid+1=3 ,max =5,mid =4;
arr[mid]=7>key
min =3,max = mid-1=3;mid =3;
arr[mid] = 6>key
min =3 max = mid-1=2; min>max 没有找到跳出循环
重点是此时左右两边折半,在没有找到的情况下跳出循环的那个最小值min就是你要找的那个数如果存在该在的位置,也就是插入数据该插入的地方。希望你懂了~ |