algorithmLearing

数组相关

二分查找

对应leetcode题目

https://leetcode-cn.com/problems/binary-search/

思路

将有序排列的不重复的数组从中间分开,每次和要找的值在中点比较,如果值小于中点,则上修改有边界,否则修改左边界.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function search(nums: number[], target: number): number {
let l = 0;
let r= nums.length-1;
while(l<=r){
let m = (l+r)>>1;
if(nums[m]==target){
return m
}
let isSmall = nums[m]>target?true:false;
l = isSmall?l:m+1;
r = isSmall?m-1:r;
}
return -1
};
thank u !