基础知识:
二分法查找是用在有序数组中。注意事项:哇,这个真的很关键,栽了好几次。当你条件设为while (left <= right)时,当你用mid = (right + left) / 2时,(right + left)可能会溢出。另一个当你条件设为while (left < right)时,当left == right时,才返回mid,那么将找不到mid。所以在不考虑left + right溢出的情况下,还是while (left <= right)和mid = (right + left) / 2配合使用靠谱。这里要注意的是旋转数组中找最小值的话,while (left < right)和if (right - left == 1)break;一起使用。
下面是力扣1~150之间的二分法查找题:
博客连接:
33.搜索旋转排序数组:https://blog.csdn.net/L_smartworld/article/details/106787605
34.在排序数组中查找元素的第一个和最后一个位置:https://blog.csdn.net/L_smartworld/article/details/106787621
35.搜索插入位置:https://blog.csdn.net/L_smartworld/article/details/106787726
69.x 的平方根:https://blog.csdn.net/L_smartworld/article/details/107184492
74.搜索二维矩阵:https://blog.csdn.net/L_smartworld/article/details/107231450