二分查找(binary search)
来源:互联网 发布:网络销售合作合同 编辑:程序博客网 时间:2024/04/28 12:19
二分查找,也叫做折半查找,或者叫二分搜索。
这个算法要求被搜索的数据结构已经排序。比起顺序查找要快很多
用递归我们可以很容易的写出这样的算法
function binarySearch(value, arr) {var mid = Math.floor(arr.length / 2);if(arr[mid] == value) {return mid;}if(arr[mid] > value) {return binarySearchValue(0, mid); } else {return binarySearchValue(mid+1, arr.length);}function binarySearchValue(start, stop) {/*@start: 子序列起点,包含@stop: 子序列终点,不包含*/if(start >= stop) {return -1;}var _mid = Math.floor(start + (stop -start)/2);if(arr[_mid] == value) {return _mid;} if(arr[_mid] > value) {return binarySearchValue(start, _mid);} else {return binarySearchValue(_mid+1, stop);}}}var arr = [4, 7, 10, 15, 20, 30, 40];
不使用递归的话,
/*不使用递归实现二分查找*/function binarySearch2 (value, arr) {var start = 0,stop = arr.length; // stopmid = Math.floor(stop / 2);while(stop > start) {if(arr[mid] == value) {return mid;}if(arr[mid] > value) {stop = mid;} else {start = mid + 1;}mid = Math.floor(start + (stop - start) / 2);}return -1;}
阅读全文
0 0
- 二分查找(Binary Search)
- binary-search( 二分查找 )
- 二分查找Binary Search
- Binary Search二分查找
- 二分查找 Binary Search
- 二分查找(Binary Search)
- 二分查找 Binary Search
- Binary Search 二分查找
- Binary Search 二分查找
- Binary Search-二分查找
- 二分查找Binary Search
- 二分查找Binary Search
- 二分查找(binary search)
- 查找:二分查找(binary search)
- Binary Search 《二分查找》 1
- Binary Search 《二分查找》 2
- Binary Search 《二分查找》 3
- 漫谈二分查找-Binary Search
- java的反射
- 高性能IO模型浅析--范志东(Florian)
- 六、ESP8266之 file操作 (基于LUA开发)
- kali更新源(附个人源)
- 学习之路——内部模块化的命令行菜单 V1.1
- 二分查找(binary search)
- 致敬老兵,传承信仰。
- java学习笔记--容器
- nba的记忆
- 让你难过的事情,有一天,你一定会…
- SQL Server中的标识列
- Android studio添加HttClient
- 书画落款考究
- 在开发中一些非技术问题