二分搜索(Binary Search)

二分搜索是一种在有序数组中查找特定元素的算法。假设我们要搜索x,搜索过程从数组的中间元素开始,如果中间元素正好是x,而查找成功;否则我们利用中间位置将数组分为前、后两个子数组。如果x小于中间位置的元素,则进一步查找前一个子数组,否则进一步查找后一个子数组。重复以上步骤,直到找到满足条件的元素,或直到子数组不存在为止,代表查找不成功。

思路:

  • 从数组中的中间元素开始,如果中间元素刚好是X,则查找成功
  • 否则我们利用中间位置将数组分为前、后两个子数组
    • 如果X小于中间元素,则进一步查找前一个子数组
    • 否则进一步查找后一个子数组
  • 重复以上步骤,直到找到满足条件的元素,或直到子数组不存在为止,代表查找不成功