1.问题阐述
从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果要查找的元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。
2. 非递归方式二分搜索算法证明
二分搜索的时间复杂度就是while循环的次数也就是折半次数,二分搜索的最坏情况是一直找到最后一个元素,设最开始是n个元素,一次折半后剩n/2个元素,k次折半后只剩一个元素,由于折半过程为:
![]()
可推出:

得到:

所以二分搜索算法的时间复杂度为O(logn)
3. 递归方式二分搜索算法证明
T(n)是求解大小为N的二

最低0.47元/天 解锁文章
468

被折叠的 条评论
为什么被折叠?



