js二分查找数据,数据首先要经过排序。
二分查找可以解决(预排序数组的查找)问题:只要数组中包含value(即要查找的值),
那么通过不断缩小包含value的范围,最终就可以找到它,找不到返回-1。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<script type="text/javascript">
//Copyright 2009 Nicholas C. Zakas. All rights reserved.
//MIT-Licensed, see source file
function binarySearch(items, value){
var startIndex = 0;
stopIndex = items.length - 1;
middle = (stopIndex + startIndex)>>>1;
while(items[middle] != value && startIndex < stopIndex){
//adjust search area(调整查找范围)
if (value < items[middle]){
stopIndex = middle - 1;
} else if (value > items[middle]){
startIndex = middle + 1;
}
//recalculate middle(重新计算中项索引)
middle = (stopIndex + startIndex)>>>1;
}
//make sure it's the right value(确保返回正确的值)
return (items[middle] != value) ? -1 : middle;
}
function test(){
var arr = [0,1,2,3,4,5,6,7,8,9,10,11,12];
var rv=binarySearch(arr,5);
alert(rv);
}
</script>
</head>
<body>
<a href="javascript:test();">search</a>
</body>
</html>
分享到:
相关推荐
在js中可能会更灵活的用到a-z上,或者用到拼音…或者用到…… 不过值得深思的一个问题是,如果为了实现对拼音之类的二分查找.而经过如下流程是否值得: 1。对拼音排序,貌似代码量不小吧。 2。然后再二分查找。这又...
主要介绍了JS实现常见的查找、排序、去重算法,结合实例形式总结分析了JavaScript线性查找、二分查找、递归查找、数组去重、冒泡拍戏、快速排序实现技巧,需要的朋友可以参考下
/*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){ if (arr.length == 0) { return []; } var left = [];//存储小于基准值 var right = [];//存储大于基准值 var ...
数据结构与算法JavaScript描述 数组 列表 栈 队列 ...二分查找及计算重复次数 查找文本数据 动态规划 Fibonacci数列 最长公子串 背包问题 贪心算法 找零问题 背包问题 最后,这本书代码错误有点多啊...
二分查找 简单 80 删除排序数组的重复项II 数组 双指针 中等 92 反转链表 II 链表 中等 100 相同的树 树 简单 206 反转链表 链表 简单 485 最大连续1的个数 数组 简单 1004 最大连续1的个数III 双指针 滑动窗口 中等...
多种语言包括java、python、c语言、go语言、php等来实现的数据结构的源码,包含数组、 链表、栈、队列、递归、排序、二分查找、散列表、二叉树、堆、图、回溯、分治、动态规划的实现方法。非常适合学习数据结构的小...
搜索旋转排序数组II 除以两个整数 树 在树上添加一行 平衡二叉树 二进制搜索树I-搜索 二叉搜索树II-插入 二叉搜索树II-删除 二叉树有序遍历 二叉树级顺序遍历 二叉树最长连续序列 二叉树最长连续序列II 二叉树...
Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS解释器 JS的发展史: 1、1992年 Nombas 开发...
在使用AJAX获取数据时后台返回的大部分都是json数据,在进行程序开发时有时会需要直接对这些json数据在js程序中再进行一定的操作,如排序、搜索等,而不是通过AJAX请求由数据库进行这些操作。 今天我就教给大家如何...
用 JavaScript 实现的快速二分查找。 为您的阅读乐趣而缩小和未缩小。 演示: : 二叉搜索树 binary-tree.js , binary-search-tree.js , self-balancing-binary-tree.js 二叉搜索树实现包括: 插入节点 计算高度...
:bookmark: 二分查找: 在计算机科学中,二分搜索,也称为半区间搜索、对数搜索或二分截断,是一种搜索算法,可在已排序的数组中查找目标值的位置。 二进制搜索将目标值与数组的中间元素进行比较。 该算法的主要...
两指针o(n)遍历变形二分查找,第一个数组找cut点,第二个数组的cut点位置可以计算得到 TOP 1、扩充法,从mid向两边遍历2、马拉车算法 TODO马拉车算法 TOP unsigned int 判断溢出的小trick TOP 两端向中间逼近找答案 ...
二分查找 46 中等的 47 中等的 56 中等的 在二维数组中排序 66 简单的 70 简单的 77 中等的 88 简单的 数组和双指针 94 中等的 二叉树 101 简单的 102 中等的 二叉树 141 , 简单的 双指针 142 , 中等的 双指针 144 ...
ii平衡二叉树二叉树的最小深度只出现一次的数字环形链表反转链表最小栈移除链表元素存在重复元素回文链表各位相加反转字符串找不同用队列实现栈斐波那契数二分查找反转字符串-ii二叉搜索树中的搜索中等两数相加字符...
leetcode 2 目录 网站/资源 A. 你需要知道的 数据结构 Javascript 文章 链表 ...JavaScript ...二分查找 数据结构和算法与 JavaScript,Ch。 10 & 13 二分查找 归并排序 数据结构和算法与 JavaScript,Ch。
二分查找 二叉搜索树 二叉树 著名算法 动态规划(Kadane 算法) 尝试(N 数组树) 图(Dijkstra、Union Find、Kruskal、Prim's、最小生成树、拓扑排序等) 字符串 堆栈 队列 数组 排序 哈希表 堆 链表 位操作 递归 ...
Welcome to leetcode-[removed]waving_hand: 力扣的题解记录(JavaScript) 调试 ... 思路 思路会记录在本仓库的 Issues 中,按照 ...二分查找 Author :bust_in_silhouette: Virkano Website: https://www.virkano.com
二分查找适用于元素已排序的列表。二分查找效率更高,但是必须是已经排好序的列表元素集合。 一:顺序查找 顺序查找是从列表的第一个元素开始对列表元素逐个进行判断,直到找到了想要的结果,或者直到列表的结尾都...
lru缓存leetcode leetcode 我的解决方案。 用法 在您的机器上本地运行和测试 首先,安装依赖: npm install 用玩笑运行测试: ...数组,二分查找 35 简单的 数组,二分查找 49 中等的 哈希表,字符串 53
3.二分查找 4.回溯算法 5.位运算 6.分治算法 7.贪心算法 8.动态规划 9.广度优先搜索 10.深度优先搜索 11.Map 12.极大化极小 13.拓扑排序 抽象数学 1. 随机 2. 蓄水池抽样 3. 数学 4. 几何 5. 设计 6. 脑筋急转弯 ...