二分查找
1.二分查找的算法描述
(1)在有序数组A内,查找你想要的值target
【1】如果找到就返回索引。
【2】如果没找到就返回-1。
算法描述 | |
---|---|
前提 | 给定一个内含n个元素的有序数组A,满足A0<=A1<=A2<=A3<=…<=An-1,一个待查值target |
1 | 设置i=0,j=n-1 |
2 | 如果i>j,查找结束,没找到 |
3 | 如果m=floor[(i+j)/2],m为中间索引,floor为向下取整(<=m的最小整数) |
4 | 如果target<Am,设置j=m-1,跳到第二步。 |
5 | 如果Am<target,设置i=m+1,跳到第二步。 |
6 | 如果Am=target,结束查找。 |
2.二分查找的图片分析
(1)
首先确定两个指针i和j
代码如下:
(2)然后设置一个数m,显示范围内有东西
注意!
java里两个整数除法自动取整。
javascript里要调用Math.floor()才能取整。
(3)最后敲上比较的代码并确定返回值m就完成了。
(4).全图预览
javaScript测试代码
结果图预览