JavaScript二分查找排序算法
来源:互联网 发布:汽车app软件下载 编辑:程序博客网 时间:2024/04/27 09:10
//二分查找
//前提:数组是有序的,如果不是有序的,则不能使用二分查找
//思路:找到数组的中间数(midVal),和要查找的数(findVal)进行比较,如果midVal>findVal,则说明findVal在数组的左边,就把该数组二分,即只在左边找
var arr=[1,3,4,6,7,9];
function binarySearch(arr,findVal,leftIndex,rightIndex){
//防止无穷递归
if (leftIndex>rightIndex) {
//提示找不到
window.alert('找不到');
return ;
}
//找到中间的值
var midIndex=Math.floor((leftIndex+rightIndex)/2);
var midVal=arr[midIndex];
//比较
if (midVal>findVal) {
//在左边找
binarySearch(arr,findVal,leftIndex,rightIndex-1);
}else if (midVal<findVal) {
//在右边找
binarySearch(arr,findVal,leftIndex+1,rightIndex);
}else{
window.alert('找到下标为:'+midIndex);
return ;
}
}
//测试
binarySearch(arr,9,0,arr.length-1);
//前提:数组是有序的,如果不是有序的,则不能使用二分查找
//思路:找到数组的中间数(midVal),和要查找的数(findVal)进行比较,如果midVal>findVal,则说明findVal在数组的左边,就把该数组二分,即只在左边找
var arr=[1,3,4,6,7,9];
function binarySearch(arr,findVal,leftIndex,rightIndex){
//防止无穷递归
if (leftIndex>rightIndex) {
//提示找不到
window.alert('找不到');
return ;
}
//找到中间的值
var midIndex=Math.floor((leftIndex+rightIndex)/2);
var midVal=arr[midIndex];
//比较
if (midVal>findVal) {
//在左边找
binarySearch(arr,findVal,leftIndex,rightIndex-1);
}else if (midVal<findVal) {
//在右边找
binarySearch(arr,findVal,leftIndex+1,rightIndex);
}else{
window.alert('找到下标为:'+midIndex);
return ;
}
}
//测试
binarySearch(arr,9,0,arr.length-1);
0 0
- JavaScript二分查找排序算法
- javascript 二分查找排序
- 排序算法-二分查找
- 排序算法+二分查找
- 排序算法之二分查找
- 排序算法学习-二分查找
- 二分查找和排序算法
- javascript排序 查找算法大全
- 二分查找(折半查找) -- 已排序序列的查找算法
- Java排序算法之二分查找
- 插入,冒泡排序算法,二分查找
- 二分查找算法与快速排序
- Java排序算法和二分查找
- 算法学习-归并排序和二分查找
- 二分查找程序算法和快速排序
- 排序算法:冒泡、选择、二分查找
- 算法(排序)加 二分查找
- 二分查找和冒泡排序算法
- 在Ubuntu 14.04 64bit上升级安装ATS 5.3.2/6.1.1实录
- 向API 接口发送和接收json数据(php,js)
- android listview、GridView中item点击后改变其他item中的状态 setOnItemClickListener onItemClick
- 树的定义和性质
- raspiberry pi下禁止ping最简单的方法
- JavaScript二分查找排序算法
- 每天积累一丢丢(Tue, 3 May 2016)
- mongodb分布式集群架构
- 4、阻止表单onsubmit事件的默认行为
- Spark资源参数调优参数
- Unity5.2.3与android通讯
- 使用ProxySelector选择代理服务器
- Android 让Retrofit与Realm、Parceler一起使用
- 编程基础-----c++与c调用so文件