二分查找(折半查找)

1、寻找一个数

  1. public int binarySearch(int[] nums, int target) {
  2. int left = 0;
  3. int right = nums.length - 1;
  4. while(left <= right) {
  5. int mid = (right - left) / 2 + left; //取中间数
  6. if (nums[mid] == target) {
  7. return target;
  8. }else if (nums[mid] < target) {
  9. left = mid + 1;
  10. }else if (nums[mid] > target) {
  11. right = mid - 1;
  12. }
  13. }
  14. return ...;
  15. }

2、寻找左侧边界

3、寻找右侧边界