<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html"/>
<meta name="keywords" content="二分查找算法" />
<meta name="description" content="二分查找算法" />
<meta name="author" content="KG" />
<meta charset="utf-8">
<title>二分查找算法</title>
</head>
<body>
<!-- 二分查找算法是一种高效的搜索算法,是一种可以在有序数组中搜索到特定的元素的算法 -->
<!-- 二分查找法一般有俩方法,使用递归或不使用递归 -->
<script>
// 进行二分查找法必须是排序好的数组
var data=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
var targetNum=8;
let start=0,
end=data.length-1,//因为是计算index值,数组中最大的index是数组长度减1
midIndex;
function findNum(start,end,targetNum){
midIndex=Math.ceil((start+end)/2) // 获取数组的中间值
if(targetNum==data[midIndex]){
return '查找到的目标是:'+data[midIndex]+','+'该目标在数组中的索引值是:'+midIndex;
}else if(targetNum>data[midIndex]){//此条件成立的话,说明,查找目标在数组的后半部分,所以应该改变查找的开始位置start的值
start=midIndex+1;//因为targetNum不等于数组中间位置的值,所以可以把开始位置往比中间位置往后移动一位,查找的结束位置不变;
return findNum(start,end,targetNum);//继续缩小范围搜索
}else if(targetNum<data[midIndex]){//此条件成立的话,说明,查找目标在筛选范围的前半部分,应该改变查找位置的end的值
end=midIndex-1; //因为targetNum不等于搜索范围的中间值,所以把搜索范围的结束位置往前移动一位,查找的开始位置不变;
return findNum(start,end,targetNum);
}else{
return '该目标在数组内查找不到!请重新输入';
}
}
console.log(findNum(start,end,targetNum))
</script>
</body>
</html>

js 二分查找法之每日一更的更多相关文章

  1. python 全栈开发,Day15(递归函数,二分查找法)

    一.递归函数 江湖上流传这这样一句话叫做:人理解循环,神理解递归.所以你可别小看了递归函数,很多人被拦在大神的门槛外这么多年,就是因为没能领悟递归的真谛. 递归函数:在一个函数里执行再调用这个函数本身 ...

  2. 面试官,我会写二分查找法!对,没有 bug 的那种!

    前言科普 第一篇二分搜索论文是 1946 年发表,然而第一个没有 bug 的二分查找法却是在 1962 年才出现,中间用了 16 年的时间. 2019 年的你,在面试的过程中能手写出没有 bug 的二 ...

  3. jvascript 顺序查找和二分查找法

    第一种:顺序查找法 中心思想:和数组中的值逐个比对! /* * 参数说明: * array:传入数组 * findVal:传入需要查找的数 */ function Orderseach(array,f ...

  4. 用c语言编写二分查找法

    二分法的适用范围为有序数列,这方面很有局限性. #include<stdio.h> //二分查找法 void binary_search(int a[],int start,int mid ...

  5. java for循环和数组--冒泡排序、二分查找法

    //100以内与7相关的数   for(int a=1;a<=100;a++){    if(a%7==0||a%10==7||a/10==7){     System.out.print(a+ ...

  6. 二分查找法 java

    前几天去面试,让我写二分查找法,真是哔了狗! 提了离职申请,没事写写吧! 首先二分查找是在一堆有序的序列中找到指定的结果. public class Erfen { public static int ...

  7. 学习练习 java 二分查找法

    package com.hanqi; import java.util.*; public class Test5 { public static void main(String[] args) { ...

  8. Java-数据结构与算法-二分查找法

    1.二分查找法思路:不断缩小范围,直到low <= high 2.代码: package Test; import java.util.Arrays; public class BinarySe ...

  9. 选择、冒泡排序,二分查找法以及一些for循环的灵活运用

    import java.util.Arrays;//冒泡排序 public class Test { public static void main(String[] args) { int[] ar ...

随机推荐

  1. idea使用教程-常用快捷键

    [1]创建内容:alt+insert [2]main方法:psvm [3]输出语句:sout [4]复制行:ctrl+d [5]删除行:ctrl+y [6]代码向上/下移动:Ctrl + Shift ...

  2. 问题--ImportError: DLL load failed: 找不到指定的模块

    今天在运行别人的项目时出现了问题: ImportError: DLL load failed: 找不到指定的模块. 解决方法: 卸载后重新安装. 详情参考: Python报错:ImportError: ...

  3. 洛谷 P1434 [SHOI2002]滑雪(DP,记忆化搜索)

    题目描述 Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道在一个区域中最长 ...

  4. 手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏01游戏窗口

    项目源码 项目源码 游戏配置信息类 Config.java 没什么解释的. package config; public class Config { public final static Stri ...

  5. python xlrd读Excel表

    1 xlrd第三方库 注意:xlrd较新版本不支持读xlsx表,需安装1.2.0版本(pip install xlrd==1.2.0)或使用其他库. xlrd库官方文档:https://xlrd.re ...

  6. <数据结构>XDOJ323.判断有向图中是否有环

    问题与解答 问题描述 判断有向图中是否有环. 输入格式 输入数据第一行是一个正整数,表示n个有向图,其余数据分成n组,每组第一个为一个整数,表示图中的顶点个数n,顶点数不超过100,之后为有向图的邻接 ...

  7. MySQL百分比显示和显示前百分之几的方法

    前几天一个朋友让我帮忙写的,随手记录一下,感觉难度也不大,就是写的时候遇到一些问题.优化方便做得不太好.有好的优化方法欢迎分享!(数据库在文章结尾) 要求 1)查询所有时间内,所有产品销售金额占比,按 ...

  8. 美和易思 · 「云农职互联网技术学院」HTML+CSS 做西普尼金表官网

    假期作业,好久没碰了,代码写得很烂......写博客纯属记录! 源代码下载地址:https://download.csdn.net/download/weixin_44893902/12805555 ...

  9. Python DataFrame to_sql方法插入日期或时间类型的数据时 报ORA-01861 文字与字符串不匹配 的解决方法

    业务团队近期提出一个需求: 希望在接口调用之前先批量插入Excel中的数据作为数据预置 这个需求以前已经开发完成 本来以为可以很快调试完毕 没成想遭遇一个难关 DataFrame.to_sql方法在执 ...

  10. Clickhouse的MergeTree表引擎存储结构

    MergeTree存储的文件结构 一张数据表被分成几个data part,每个data part对应文件系统中的一个目录.通过以下SQL可以查询data parts的信息. select table, ...