首页 > 其他分享 >手写题

手写题

时间:2023-08-27 11:12:21浏览次数:25  
标签:arr end mid start key search2 手写

1.使用js实现二分查找

// 非递归的方式
function search(arr, key) { var start = 0; var end = arr.length - 1 while (start <= end) { var mid = parseInt((start + end) / 2) if (key === arr[mid]) { return mid } else if (key > arr[mid]) { start = mid + 1 } else { end = mid - 1 } } return -1 }var arr = [0, 13, 21, 35, 46, 52, 68, 77, 89, 94]; console.log(search2(arr, 94));
// 递归的方式
function search2(arr, key, start = 0, end = arr.length - 1) { var mid = parseInt((start + end) / 2) if (key > arr[mid]) { return search2(arr, key, mid + 1, end) } else if (key < arr[mid]) { return search2(arr, key, start, mid - 1) } else if (key === arr[mid]) { return mid } else { return -1 } }
 var arr = [0, 13, 21, 35, 46, 52, 68, 77, 89, 94];
 console.log(search2(arr, 94)); 

 

标签:arr,end,mid,start,key,search2,手写
From: https://www.cnblogs.com/zjy1017/p/17659986.html

相关文章

  • 手写RISC-V处理器--1
    由来由于去年工作变动,有幸进入了芯片行业,但主要工作内容为基于RISC-V的嵌入式应用软件开发,几乎接触不到芯片设计的相关知识,然而随着工作的深入,越来越想探究一下运行在软件之下的CPU的世界,于是便产生了自己手写一个RISC-V处理器的想法,同时在博客里记录和分享一下自己学习和探索的......
  • 手写apply-call-bind实现
    call1Function.prototype.myCall=function(thisArg,...args){2letfn=this//隐式调用3thisArg=(thisArg!==null&&thisArg!==undefined)?Object(thisArg):window//传undefinednull指向window全局4thisArg.fn=fn//15letresult=thisArg.fn(......
  • 手写ES6.0-flat()
    一、问题描述已有多级嵌套数组:[1,[2,[3,[4,5]]],6]将其扁平化处理,输出:[1,2,3,4,5,6]二、详细描述题目表示对于一个多维的数组,需要构建一个方法,将其直接转化为一个一维数组的输出三、解法思路(一)递归1.思路查看题目的表述就可发现,其实数组中的每一个元素都是整......
  • java笔试手写算法面试题大全含答案
    1.统计一篇英文文章单词个数。publicclassWordCounting{publicstaticvoidmain(String[]args){try(FileReaderfr=newFileReader("a.txt")){intcounter=0;booleanstate=false;intcurrentChar;while((currentChar=fr.read())!=-1){if(currentChar=='......
  • java笔试手写算法面试题大全含答案
    1.统计一篇英文文章单词个数。publicclassWordCounting{publicstaticvoidmain(String[]args){try(FileReaderfr=newFileReader("a.txt")){intcounter=0;booleanstate=false;intcurrentChar;while((currentChar=fr.read())!=-1){if(currentChar==�......
  • 手写Promise
    1.promise是手写异步代码的另一种方式,主要用于解决回调嵌套问题2.promise提供两个参数resolve(成功时调用的函数),reject(失败时调用的参数),它们是promise内部实现好的函数3.promise有三种状态,pending等待,fulfilled成功,rejected失败4.resolve时,将promise的状态从pending改为fulfi......
  • Html+JavaScript实现手写签名
    前言Hello各位,本葡萄又来啦,今天遇到的场景是这样的:在日常业务流程中,经常需要某一流程环节中相关责任人员进行审批签字,早期许多公司为了省事就直接会把这位负责人的签名以键盘打字(楷体)的形式打印出来,但是这样的坏处就是会导致所有的负责人的签名都是一样的,没有美感,为了解决这个问......
  • 基于LeNet网络的MNIST手写数字训练和识别matlab仿真
    1.算法理论概述      基于LeNet网络的MNIST手写数字训练和识别的实现步骤。首先,我们将介绍MNIST数据集的基本信息和LeNet网络的结构及其原理。然后,我们将详细说明数据预处理、LeNet网络的实现过程和训练过程。最后,我们将展示如何使用训练好的LeNet网络对手写数字进行识别,......
  • 手写raft(二) 实现日志复制
    1.Raft日志复制介绍在上一篇博客中MyRaft实现了leader选举,为接下来实现日志复制功能打下了基础:手写raft(一)实现leader选举日志复制是raft最核心也是最复杂的功能,大体上来说一次正常的raft日志复制大致可以简化为以下几步完成:客户端向raft集群发送一次操作请求(比如kv数......
  • 小程序手写tab切换下边框跟随移动特效
    简单效果就是这样,主要是用到微信的动画和获取元素信息left处理。具体来说就是先给红色的边一个固定位置,等到点击切换下一个按钮的时候,获取到下一个按钮的left信息,然后对红色边框使用translateX动画效果,代码如下:wxml<viewclass="tab"><viewbindtap="changeType"id="a1......