二分查找算法
1.H5 的新特性有哪些?C3 的新特性有哪些2.Localstorage、sessionStorage、cookie 的区别3.H5 的浏览器存储有哪些4.简述 transform,transition,animation 的作用?5.CSS 中选择器的优先级以及CSS 权重如何计算6.HTML5 的离线存储怎么使用,工作原理是什么?7.css3制作三角形8.rem 适配方法如何计算 HTML 跟字号及适配方案?9.定位相关10.Modele build failed: TypeError: this.getResolve is not a function at Object.loader...11.BFC 是什么12.使用CSS怎么让Chrome支持小于12px的文字比如10px13.创建对象有几种方法14.JavaScript中的toLocaleString()方法你知道吗?15.暂时性死区16.作用域链和原型链17.dom 节点的 Attribute 和 Property 有何区别?18.简单说一下页面重绘和回流?19.defer 属性async 属性20.解释一下什么是回调函数,并提供一个简单的例子21.你对原型(prototype)理解22.简单说说 js 中的继承23.介绍 this 各种情况24.for in 和 for of 的区别25.判断一个字符串中出现次数最多的字符,统计这个次数26.jQuery 的 ajax 返回的是 promise 对象吗?27.echarts切换其他组件统计图时,出现卡顿问题如何解决28.module、export、import 有什么作用29.包含Symbol类型的对象遍历取key使用Reflect.ownKeys30.常见的 HTTP 状态码以及代表的意义31.HTTP 与 HTTPS 的区别32.一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么33.浏览器如何加载页面的,script 脚本阻塞有什么解决办法,defer 和 async 的区别是什么34.Vue 数据双向绑定的原理是什么?35.组件中写 name 选项有什么作用36.怎么在组件中监听路由参数的变化?37.怎么捕获 Vue 组件的错误信息?38.computed 中的属性名和 data 中的属性名可以相同吗39.Vue 中 key 值的作用是什么?40.你对 Vue.js 的 template 编译的理解?41.VNode 是什么?什么是虚拟DOM?42.简述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(),wx.navigateBack(), wx.reLaunch()的区别?43.微信小程序长按识别二维码44.原生微信小程序45.小程序中 canvas 的图片不支持 base64 格式46.小程序关联微信公众号如何确定用户的唯一性?47.setState和useState执行48.如何进行前端性能优化49.Vue和React中diff算法区别50.通过code换取网页授权access_token和基础支持中的access_token有以下不同之处:51.H5调起支付API52.使用Vue前端实现微信授权、微信支付和支付宝支付的具体代码和流程。53.js中显示转换类型54.js小常识55.js获取浏览器地址的query参数并以键值对的方式展示(对象)封装一个方法56.js寄生组合式继承57.ts58.promise知识159.vue中v-bind和v-model的区别是什么60.Vue中key的作用61.在Vue 3中,与Vue 2相比,有一些改进和优化的diff算法。62.浏览器解析html63.浏览器渲染HTML64.Object.entries()65.vue实现虚拟dom转换成真是dom的原理66.为什么vue数组下标修改监听不到67.Vue 3 在某些场景下可能表现出比 Vue 2 更低的性能68.vue里表单验证的v-model.number的坑69.开启严格模式70.js手写一个call71.js手写一个apply72. 手写一个 bind 方法73.js寄生组合式继承74.react中的useState修改状态获取最新状态值75.函数柯里化js76.axios请求中断_下载中断和下载进度77.axios请求重试_核心原理78.axios请求重试_axios-retry插件79.虚拟列表-渲染 10 万条数据80.vue-office 组件81.threejs82.把原生 DOM 标签转换后加入到 3D 场景空间中显示83.three.js 物体要使用光线投射技术,计算是否点击位置与物体有交叉84.threejs基本函数
85.二分查找算法
86.js判断字符串是否连贯87.世界坐标系和模型坐标系88.设置车模型中每个小物体 castShadow = true89.Vue3 echarts 组件化使用 resizeObserver90.网页验证码的作用 *网页中几种常见验证码91.多个装饰器一起es6装饰器92.flex属性93.移动端兼容问题94.那什么是URL、URI、URN?95.面试题96.面试前端二分查找算法
const func = (array, target) => {
let left = 0
let right = array.length - 1
while (left <= right) {
let mid = Math.floor((left + right) / 2)
if (array[mid] === target) {
return mid
} else if (array[mid] < target) {
left = mid + 1
} else {
right = mid - 1
}
}
return left
}
这段代码是一个二分查找算法的实现。函数的参数有一个有序数组 array 和一个目标值 target。算法的目标是在数组中找到目标值的索引,如果目标值不存在于数组中,则返回插入位置的索引。
算法首先初始化左边界 left 为数组的第一个元素的索引,右边界 right 为数组最后一个元素的索引。然后进入一个循环,不断缩小搜索范围,直到找到目标值或者搜索范围为空。
在循环中,首先计算中间值 mid,通过将左边界和右边界相加除以2取整得到。然后比较中间值和目标值的大小关系。如果中间值等于目标值,说明已经找到目标值,返回中间值的索引。如果中间值小于目标值,说明目标值在中间值的右侧,将左边界更新为中间值的右侧,继续在右侧搜索。如果中间值大于目标值,说明目标值在中间值的左侧,将右边界更新为中间值的左侧,继续在左侧搜索。
如果循环结束后还没有找到目标值,说明目标值不存在于数组中。根据二分查找的特性,返回左边界 left。这个左边界也可以看作是插入位置的索引,因为它是第一个大于目标值的元素的索引。
总结起来,这个函数使用二分查找算法在有序数组中查找目标值,并返回目标值的索引或插入位置的索引。
本文来自博客园,作者:jialiangzai,转载请注明原文链接:https://www.cnblogs.com/zsnhweb/articles/17788929.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!