当前位置: 首页 > 后端技术 > PHP

二分搜索算法简写

时间:2023-03-30 02:30:08 PHP

二分搜索(英文:binarysearch),又称为半区间搜索(英文:half-intervalsearch)对数搜索(英文:logarithmicsearch,是对有序数组中特定元素的搜索搜索算法。搜索过程从数组的中间元素开始。如果中间元素恰好是要搜索的元素,则搜索过程结束;搜索,从中间元素开始比较。如果数组某步为空,表示找不到,该搜索算法每次比较,搜索范围缩小一半适用场景:Sorted(单调递增或递减)Bounded(有上下界,因为它需要分成两块来查找)Accessiblebyindex(可以通过索引访问)时间复杂度:O(logN)空间复杂度:O(N)使用常量空间,无论any输入数据的大小,空间算法使用hm同样适用的数据结构:array,因为它在内存中是连续的,适合二分查找。但是链表不适合,因为链表的坐标不固定,访问a[2]需要先从a[0]的后继节点找到a[1],然后通过a[2]访问a[2]a[1]的后继节点。步骤:初始状态left和right分别指向数组的头部和尾部。通过(left+right)/2得到中间位置mid,访问数组中中间位置的元素。判断其与搜索目标的大小关系,若相等则程序返回,若小于目标则将左指针移动到mid+1;如果大于目标,则将右指针移动到mid-1,重复上面的2-3步,直到找到目标元素或程序退出。代码实现: