二进制搜索和二进制排序之间的区别

时间:2020-07-26 11:55:22

标签: python algorithm sorting search binary-search

  1. 二进制搜索和二进制排序有什么区别? (或者没有二进制排序之类的东西。)

  2. 我可以对未排序的列表执行二进制搜索吗? (我对此不太清楚,有人可以向我解释一下。)

  3. 如果我对未排序的列表执行二进制排序,然后对那个(现在)排序列表中的元素进行二进制搜索,那么整个过程的时间复杂度如何?

1 个答案:

答案 0 :(得分:1)

  1. 我可以对未排序的列表执行二进制搜索吗?(对此我有点清楚,有人可以向我解释一下)

不,你不能

二进制搜索的核心思想是通过值比较来减少搜索空间。

例如看[1,2,3,4,5,6,7],要搜索的元素是5。 在二分查找中,在这种情况下,我们查看中间元素4,因为目标元素大于4,并且我们知道数组已排序,所以我们只能查看右边的[5,6,7]

也可以在函数为MONOTONOUS的情况下执行二进制搜索,例如 [T,T,T,T,F,F,F] 您可以应用二进制搜索来使用此模板在数组中找到第一个False

start=0, end=size
while(start<end)
    if(condition)
       end=mid
    else
       start=mid+1 
return start

返回开始将为您提供第一个为假的元素。