zoukankan      html  css  js  c++  java
  • js 二分查找法之每日一更

    <!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>
  • 相关阅读:
    xlwt 写sheet xls 文件
    xlrd 安装步骤
    托管DLL和非托管DLL的区别
    MongoDB 第一篇
    memcache
    gitignore忽略规则
    GIT 学习笔记
    前端渲染模板(一):Thymeleaf
    架构实战项目心得(十四):spring-boot结合Swagger2构建RESTful API测试体系
    架构实战项目心得(十一):基于spring-security-oauth2的mysql数据表设计
  • 原文地址:https://www.cnblogs.com/nimon-hugo/p/12690802.html
Copyright © 2011-2022 走看看