使用javascipt---实现二分查找法

 更新时间:2013年04月10日 12:17:19   作者:  
本篇文章,小编为大家介绍使用javascipt---实现二分查找法的方法,有需要的朋友可以参考一下

复制代码 代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script type="text/javascript">

    //window.alert(Math.floor(5.7)); //向下取整 输出5

    //二分查找法 数组必须是有序的

    function binarySeach(arr,findval,leftIndex,rightIndex){

        //找到中间的值
        var midIndex=Math.floor((leftIndex+rightIndex)/2);
        var midval=arr[midIndex];

        //防止无穷递归
        if(leftIndex>rightIndex){

            //说明找不到
            document.writeln("找不到");
            return ;
        }

        //进行查找
        if(midval>findval){

            //在左边找
            binarySeach(arr,findval,leftIndex,midIndex-1);
        }else if(midval<findval){

            //说明往右边找
            binarySeach(arr,findval,midIndex+1,rightIndex);
        }else{

            //找到了 输出或者返回
            document.writeln("找到了,下标为:"+midIndex);
            return ;
        }
    }

    var arr=[1,3,12,21,24,44,54,67];
    binarySeach(arr,67,0,arr.length-1);
</script>
</head>
<body></body>
</html>

相关文章

  • JavaScript基础心法 数据类型

    JavaScript基础心法 数据类型

    一个很基础的知识点,这篇主要是介绍JavaScript中基本数据类型和引用数据类型是如何存储的,需要的朋友可以参考下
    2018-03-03
  • nodejs的require模块(文件模块/核心模块)及路径介绍

    nodejs的require模块(文件模块/核心模块)及路径介绍

    在nodejs中,模块大概可以分为核心模块和文件模块,核心模块是被编译成二进制代码,引用的时候只需require表示符即可,文件模块,则是指js文件、json文件或者是.node文件
    2013-01-01
  • javascript回调函数详解

    javascript回调函数详解

    这篇文章主要介绍了javascript回调函数的相关知识点以及用法代码实例分析,对此有需要的朋友可以学习参考下。
    2018-02-02
  • javascript中call()、apply()的区别

    javascript中call()、apply()的区别

    这篇文章主要介绍了javascript中call()、apply()的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • JavaScript碎片—函数闭包(模拟面向对象)

    JavaScript碎片—函数闭包(模拟面向对象)

    这篇文章主要介绍了JavaScript函数闭包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • js的Prototype属性解释及常用方法

    js的Prototype属性解释及常用方法

    你不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在
    2014-05-05
  • 浅谈JavaScript中的Math.atan()方法的使用

    浅谈JavaScript中的Math.atan()方法的使用

    这篇文章主要介绍了JavaScript中的Math.atan()方法的使用,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • 《javascript少儿编程》location术语总结

    《javascript少儿编程》location术语总结

    在本篇内容中小编整理了关于《javascript少儿编程》location术语总结,这是学习的基础,一起跟着参考下吧。
    2018-05-05
  • JavaScript中的parse()方法使用简介

    JavaScript中的parse()方法使用简介

    这篇文章主要介绍了JavaScript中的parse()方法使用简介,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • JavaScript_ECMA5数组新特性详解

    JavaScript_ECMA5数组新特性详解

    下面小编就为大家带来一篇JavaScript_ECMA5数组新特性详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论