📜  DAA二进制搜索

📅  最后修改于: 2020-12-10 03:54:36             🧑  作者: Mango

二元搜寻

1.在Binary Search技术中,我们通过将间隔递归地分成两半来搜索排序数组中的元素。

2.首先,我们将整个数组作为一个间隔。

3.如果Pivot元素(要搜索的项目)小于间隔中间的项目,我们将丢弃列表的后半部分,并通过计算新的中间值来递归地对列表的前半部分重复此过程最后一个元素。

4.如果Pivot元素(要搜索的项目)大于间隔中间的项目,我们将丢弃列表的前半部分,并通过计算新的开始和中间元素来递归地处理后半部分。

5.重复检查,直到找到该值或间隔为空。

分析:

  • 输入:大小为n的数组A,已经按升序或降序排序。
  • 输出:分析以搜索大小为n的排序数组中的元素项。
  • 逻辑:设T(n)=排序数组中具有n个元素的项的比较数。
  • 设置BEG = 1和END = n
  • 查找中间= 二元搜寻
  • 将搜索项与中间项进行比较。

情况1: item = A [mid],则LOC = mid,但这是最佳情况,T(n)= 1

情况2:项目≠A [mid],则我们将数组分成大小相等的两个部分二元搜寻

然后再次找到半排序数组的中点,然后与搜索元素进行比较。

重复相同的过程,直到找到搜索元素。

T(n)= ”二元搜寻” ……(等式1)

{比较搜索元素与中间元素,然后与选定数组一半的一半进行比较的时间}

”二元搜寻”

至少只剩下一个术语,这就是为什么该术语可以比较的原因,而只有一个比较可以完成,因此”二元搜寻”

是等式的最后一项,它将等于1

”二元搜寻”