第一种:顺序查找法

中心思想:和数组中的值逐个比对!

    /*
* 参数说明:
* array:传入数组
* findVal:传入需要查找的数
*/
function Orderseach(array,findVal){
var temp = false; //控制开关
for(var i =0;i<array.length;i++){
if(array[i] == findVal){ //逐个匹配是否相等
temp = true; //如果找到,temp设置为true;
return i; //返回在数组的位置
}
}
if(!temp){ //如果没有找到
return '没找到';
}
} //调用:
var arr = [5,7,66,78,99,103,126,203,1];
document.write(Orderseach(arr,103)); //总结:很简单的代码,大神请忽视~~~

  

第二种:二分查找法

主要思想是:(设查找的数组区间为array[left, right])

  1. 确定该期间的中间位置middle。
  2. 将查找的值findVal与array[middle]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。

注意: 使用二分查找的数组必须是有序的

二分法查找 ---递归

//二分法查找   ---递归
function binarySeach(array,findVal,left,rigth){
var middle = Math.round((left + rigth) / 2); //确定中间的那个数
if(left > rigth){ //如果左边的数大于右边的数,证明没有找到数
document.write('找不到');
return;
};
if(findVal > array[middle]){ //像右查找
binarySeach(array,findVal,middle +1,rigth);
}else if(findVal < array[middle]){ //像左查找
binarySeach(array,findVal,left,middle -1);
}else{//显示
document.write(middle);
}
};

  

调用:

binarySeach(arr,204,0,arr.length -1);

 

二分法查找 ---函数循环

//二分法查找 -- 循环
function binarySeach1(array,findVal){
var left = 0; //数组从下标为0开始
var right = array.length -1; //数组结束
while(left <= right){ //左边不能大于右边
var middle = Math.round((left + right)/2); //取中间
if(findVal == array[middle] ){ //
return middle;
}else if(findVal < array[middle] ){//像左查找
right = middle - 1;
}else if(findVal > array[middle]){//像右查找
left = middle + 1;
}
}
return '找不到';
};

调用:

binarySeach1(arr,104);

jvascript 顺序查找和二分查找法的更多相关文章

  1. 各种查找算法的选用分析(顺序查找、二分查找、二叉平衡树、B树、红黑树、B+树)

    目录 顺序查找 二分查找 二叉平衡树 B树 红黑树 B+树 参考文档 顺序查找 给你一组数,最自然的效率最低的查找算法是顺序查找--从头到尾挨个挨个遍历查找,它的时间复杂度为O(n). 二分查找 而另 ...

  2. Java中常用的查找算法——顺序查找和二分查找

    Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...

  3. C语言查找算法之顺序查找、二分查找(折半查找)

    C语言查找算法之顺序查找.二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 顺序查找 /*顺序查找 顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的 ...

  4. Java顺序查找、二分查找

    Java顺序查找.二分查找   查找算法中顺序查找算是最简单的了,无论是有序的还是无序的都可以,只需要一个个对比即可,但其实效率很低. 顺序查找 动图演示 详细代码 // 顺序查找 public st ...

  5. 【PHP数据结构】线性查找与二分查找

    欢迎来到查找的世界,在学习完各种数据结构之后,总算走到了这一步,不知道大家有什么感想呢?反正我是边学边忘,现在让我去说说图的那几个算法还是在蒙圈的状态中.不过学习嘛,就是一步一步的来,暂时搞不懂的东西 ...

  6. List<T>线性查找和二分查找BinarySearch效率分析

    今天因为要用到List的查找功能,所以写了一段测试代码,测试线性查找和二分查找的性能差距,以决定选择哪种查找方式. 线性查找:Contains,Find,IndexOf都是线性查找. 二分查找:Bin ...

  7. Java基础知识强化60:经典查找之二分查找

    1. 二分查找       二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表. 比较 ...

  8. python---顺序查找,二分查找

    比较熟悉了. 但要注意细节, 二分查找时,普通方法mid处理,递归时,mid处理. # coding = utf-8 def sequential_search(a_list, item): pos ...

  9. Python查找算法之 -- 列表查找和二分查找

    一.列表查找:从列表中查找指定元素 输入:列表.待查找元素 输出:元素下标或未查找到元素 二.列表查找方式 顺序查找 : 从列表的第一个元素开始遍历,知道找到为止.时间复杂度O(n) 二分查找 :从有 ...

随机推荐

  1. React Native props & state

    今天又敲了一丁点代码,看了一下props和state的用法 原本以为state只是一个状态,但是又阅读了一下原文,才知道state是一组状态,这些状态是开发者自己定义的,都统一在state这个大类底下 ...

  2. MBProgressHUD 显示后,为何不能点击屏幕其他地方

    解决办法: hud.userInteractionEnabled= NO;  就是这么简单粗暴!这个问题 我一定要发到首页候选区! /********************************* ...

  3. Android WebView 302斗争之旅

    一.背景 越来越多的业务接入,项目内多多少少会出现几个H5页面,只是单纯的提供WebView容器接入H5页面根本满足不了需求,他们需要登录态,需要制定协议控制Native的导航栏,或者需要JsBrid ...

  4. Hbase入门教程--单节点伪分布式模式的安装与使用

    Hbase入门简介 HBase是一个分布式的.面向列的开源数据库,该技术来源于 FayChang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像 ...

  5. [Hadoop]-从数据去重认识MapReduce

    这学期刚好开了一门大数据的课,就是完完全全简简单单的介绍的那种,然后就接触到这里面最被人熟知的Hadoop了.看了官网的教程[吐槽一下,果然英语还是很重要!],嗯啊,一知半解地搭建了本地和伪分布式的, ...

  6. android 设颜色透明值

    如:把    <color name="line_gray_tran">#8d8d8d</color> 要设70%的透明值 计算方法:255*0.75=19 ...

  7. js 页面无滚动条添加滚轮事件

    当页面无滚动条时,滑动滚轮时window.onscroll事件不会相应,此时应该去添加滚轮事件 var MouseWheelHandler=function(e){ e.preventDefault( ...

  8. java 集合

    1. 2.for循环的时候会改变角标,所以删除需要--,增加需要++ 3.去除重复元素2(用的实质都是对象的equals方法) 4.Treeset 里面的add方法 5.treeSet里面addstu ...

  9. js禁止页面刷新禁止用F5键刷新,禁止右键

    <script     language="javascript"> //禁止用F5键 function     document.onkeydown() { if   ...

  10. [LeetCode] Strong Password Checker 密码强度检查器

    A password is considered strong if below conditions are all met: It has at least 6 characters and at ...