<!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. 1217 - Neighbor House (II)

    1217 - Neighbor House (II)    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 3 ...

  2. 从零搭建react hooks项目(github有源代码)

    前言 首先这是一个react17的项目,包含项目中常用的路由.状态管理.less及全局变量配置.UI等等一系列的功能,开箱即用,是为了以后启动项目方便,特地做的基础框架,在这里分享出来. 这里写一下背 ...

  3. Codeforces 931C:Laboratory Work(构造)

    C. Laboratory Work time limit per test : 1 second memory limit per test : 256 megabytes input : stan ...

  4. 在linux(deepin)系统下查看当前ip地址与用户名

    在linux(deepin)系统下查看当前ip地址与用户名 查看当前ip地址 方式一: hostname -I 方式二: ifconfig -a 如下图所示: 其中192.168.11.66即为当前系 ...

  5. CH7511|LT7211|PS8625替代方案 CS5211 设计EDP转LVDS优势方案原理图+PCB板设计

    CH7511|LT7211|PS8625这三款都是专门用于设计EDP转LVDS转接板或者屏转换方案板,CH7511.LT7211.PS8625目前这几款都是出于缺货状态,台湾瑞奇达Capstone 新 ...

  6. Jsonschema2pojo从JSON生成Java类(Maven)

    1.说明 jsonschema2pojo工具可以从JSON Schema(或示例JSON文件)生成Java类型, 并且可以配置生成Jackson 1.x,Jackson 2.x, Moshi 1.x或 ...

  7. Storm集群使用DRPC功能Version1.0.1

    在Storm集群上开启DRPC功能, 基于Storm的1.0.1版本, 并且执行简单的例子测试. 1.DRPC概念 DRPC就是分布式远程过程调用. Storm里面引入DRPC主要是利用storm的实 ...

  8. JSR-303规范

    规范链接 CONSTRAINT 详细信息 @Valid 被注释的元素是一个对象,需要检查此对象的所有字段值 @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null ...

  9. 一文了解Flink State Backends

    原文链接: 一文了解Flink State Backends 当我们使用Flink进行流式计算时,通常会产生各种形式的中间结果,我们称之为State.有状态产生,就必然涉及到状态的存储,那么Flink ...

  10. POJCrossing River

    http://poj.org/problem?id=1700贪心问题 对于一个安排,怎么样是最小的?首先关于花费,对于每次运输,以最节约的方式运输.两种情况,一种最轻的作为往返,另外 一种是每次带一个 ...