一个运用二分查找算法的程序的时间复杂度指的是什么

  介绍

小编给大家分享一下一个运用二分查找算法的程序的时间复杂度指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

一个运用二分查找算法的程序的时间复杂度是“对数级别”。二分查找是一种效率较高的查找方法,算法复杂度即是当循环的次数,时间复杂度可以表示“O (h)=O(为log2n)”。

<强>一个运用二分查找算法的程序的时间复杂度是“对数级别”。

相关

二分查找也称折半查找(二分法),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

<强>查找过程:

首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功,否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

<强>算法复杂度:

二分查找的基本思想是将n个元素分成大致相等的两部分,取(n/2)与x做比较,如果x=a (n/2),则找到x,算法中止,如果x<(n/2),则只要在数组一的左半部分继续搜索x,如果x> (n/2),则只要在数组一的右半部搜索x。

时间复杂度即是当循环的次数。

总共有n个元素,

渐渐跟下去就是n, n/2, n/4, .... n/2 ^ k(接下来操作元素的剩余个数),其中k就是循环的次数

由于你n/2 ^ k取整后的在=1

即令n/2 ^ k=1

可得k=为log2n,(是以2为底,n的对数)

所以时间复杂度可以表示<代码> O (h)=O(为log2n)

下面提供一段二分查找实现的伪代码:

BinarySearch(最大值、最小值、des)   中期& lt; (max +分钟)/2   而(min<=max)   中期=(min + max)/2   if 中期=des 然后   中期return    elseif  mid 祝辞des 然后   max=mid-1   其他的   中期min=+ 1   return 马克思

折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O (log n)完成搜索任务。它的基本思想的是:(这里假设数组元素呈升序排列)将n个元素分成个数大致相同的两半,取一个(n/2)与欲查找的x作比较,如果x=a (n/2)则找到x,算法终止,如果x<(n/2),则我们只要在数组一的左半部继续搜索x;如果x> (n/2),则我们只要在数组一的右半部继续搜索x。

一个运用二分查找算法的程序的时间复杂度指的是什么