javascript-binarySearch

前提: 数组已排序,且为正整数数组.

 1 function brnarySearch(arg, arr) {
 2     var right = arr.length - 1;
 3     var left = 0;
 4     while(left <= right) {
 5           var mid = left + parseInt( (right - left) / 2 );
 6           if(arg < arr[mid]) right = mid - 1;
 7           else if(arg > arr[mid]) left = mid + 1;
 8           else return mid;
 9     }
10     return -1;
11 }
12 var arr = [1, 3, 5, 7, 9, 11, 12, 44, 56];
13 console.log(brnarySearch(9, arr));
时间: 2025-01-02 18:51:46

javascript-binarySearch的相关文章

二分查找算法的 JavaScript 实现

二分查找在查找[指定值]在[有序]数据中的[位置]时是一种高效的算法. 以下仅提供 ES5 版本. var arr = [0, 2, 4, 27, 28, 54, 67, 74, 75, 79, 86, 97, 289, 290, 678] function binarySearch(arr, val) { var start = 0, end = arr.length - 1; while (start <= end) { var mid = Math.floor((start + end)

JavaScript Ajax 与服务器通信

XMLHttpRequest对象 -常用方法-: open("method","URL",是否异步默认为true,"用户名","密码") 设置进行异步请求目标的URL send(content); content可以是DOM对象的实例.输入流.字符串.null setRequestHeader("header","value") 为请求的HTTP头设置值 abort() 停止或放弃当前异

javascript学习6-练习之3二分查找算法

二分查找算法,对数据进行查找并且显示位置. 核心思想:将所查找数据与查询数组中间的数进行比较,findVal<midVal,则在左边进行二分查找,否则在右边进行二分查找递归调用 具体代码如下: 1 //二分查找 2 var string2=[1,3,42,88,123,143]; 3 var leftIndex=0; 4 var rightIndex=5; 5 function binarySearch(string2,findVal,leftIndex,rightIndex) 6 { 7 if

3、JavaScript

1.    JavaScript简介 1.1. JavaScript由来 Netscape 发明了 JavaScript JavaScript由Netscape 在1995年发明.早期的主要目的是处理一些用户的输入验证操作.而在JavaScript语言出现之前客户端的页面时需要提交到服务器端,由服务器去检测的.在刚刚普及的电话线调制解调器时代,对用户是一种考验,著名的Netscape Navigator(早期浏览器) 通过引入JavaScript来解决该问题 随着互联网的流行,网页已经不断变得更

JavaScript之 ------ 函数(一般函数、动态函数、匿名函数)

JavaScript之 ------ 函数(一般函数.动态函数.匿名函数) 函数 一.一般函数 1.格式: function 函数名(形式参数...) { 执行语句: return 返回值: } 函数是多条执行语句的封装体,只有被调用才会被运行. 注意:调用有参数的函数,但没有给其传值,函数一样可以运行,或者调用没有参数的函数,给其传值,该函数也一样运行. 说的简单点:只要写了函数名后面跟了一对小括号,该函数就会运行. 2.函数虽然定义时是声明成两个参数,但调用时却是可以传入任意个 例: ? 1

javascript常用经典算法实例详解

javascript常用经典算法实例详解 这篇文章主要介绍了javascript常用算法,结合实例形式较为详细的分析总结了JavaScript中常见的各种排序算法以及堆.栈.链表等数据结构的相关实现与使用技巧,需要的朋友可以参考下 本文实例讲述了javascript常用算法.分享给大家供大家参考,具体如下: 入门级算法-线性查找-时间复杂度O(n)--相当于算法界中的HelloWorld ? 1 2 3 4 5 6 7 8 9 10 //线性搜索(入门HelloWorld) //A为数组,x为要

Javascript学习总结-面向对象-(五)

1. 面向对象 JavaScript面向对象的脚本语言,此时开发者在开发的时候需要找对象,默认提供了内置的对象.也可以根据开发者的需求自己定义对象. 1.1.     基本数据类型包装类 为了便于操作基本类型值,ECMAScript 提供了3个特殊的引用类型:Boolean,Number,String.它们是引用类型.当读取基本数据类型时,后台就会创建一个对应的基本包装类对象,所以我们在操作基本数据类型时,可以直接调用一些方法. 1.1.1.  String //通过构造函数创建String 对

3、JavaScript快速入门(2)

函数基础 函数主要用来封装具体的功能代码. 函数是由这样的方式进行声明的:关键字 function.函数名.一组参数,以及置于括号中的待执行代码. 注意:函数的形参是不用声明使用的. 函数的基本语法是这样的: function functionName(arg0, arg1, ... argN) { statements } 例如: function sayHi(sName, sMessage) { alert("Hello " + sName + sMessage); } 调用函数:

关于javascript的一个小问题,请问有人看出啥问题吗?

最近学习javascript,有一个问题挺奇怪的,先贴出代码: function binarySearch(){ var arr = [0,1,2,3]; var res = actbinarySearch(0,3,2,arr); document.write("<br/>return is "+ res); } function actbinarySearch(left,right,val,arr){ if(left > right){ document.write

Javascript中call的使用

call 方法应用于:Function 对象调用一个对象的一个方法,以另一个对象替换当前对象.call([thisObj[,arg1[, arg2[,   [,.argN]]]]])参数:thisObj 可选项.将被用作当前对象的对象. arg1, arg2, , argN 可选项.将被传递方法参数序列. 说明:call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象.如果没有提供 thisObj 参数,那么 G