返回

二分法的写法

发布时间:2022-12-30 12:46:22 195

二分法的写法

var nums=[1,2,3,4];
var target=3;
// 左闭右闭
var find=(nums,target)=>{
var l=0;
var r=nums.length-1;
while(l<=r){
var mid=Math.floor((l+r)/2);
if(nums[mid]>target){
r=mid-1;
}
else if(nums[mid] l=mid+1;
}else{
return nums[mid];
}
}
return -1;
}

//左闭右开
var find2=(nums,target)=>{
var l=0;
var r=nums.length;
while(l var mid=Math.floor((l+r)/2);
if(nums[mid]>target){
r=mid;
}else if(nums[mid] l=mid+1;
}else{
return nums[mid];
}
}
return -1;
}

//左闭右开,递归写法
var find3=(nums,t)=>{
var search=(l,r)=>{
if(l>=r) return -1
var mid=Math.floor((l+r)/2)
if(nums[mid]>target){
return search(l,mid)
}else if(nums[mid] return search(mid+1,r)
}else{
return mid
}
}
return search(0,nums.length)
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
Verilog HDL 实现 74HC595 2022-12-30 12:16:38