【算法】查找

概念知识

查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)
查找算法分类
1)静态查找和动态查找;
注:静态或者动态都是针对查找表而言的。动态表指查找表中有删除和插入操作的表。
2)无序查找和有序查找。
无序查找:被查找数列有序无序均可;
有序查找:被查找数列必须为有序数列
平均查找长度(Average Search Length,ASL):需和指定key进行比较的关键字的个数的期望值,称为查找算法在查找成功时的平均查找长度。是衡量查找算法效率的最主要标准。
对于含有n个数据元素的查找表,查找成功的平均查找长度为:ASL = Pi * Ci的和。
Pi:查找表中第i个数据元素的概率。
Ci:找到第i个数据元素时已经比较过的次数。

1. 顺序查找【无序查找】

思想:

从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值value相比较,若相等则表示查找成功,函数返回该数据元素在线性表中的位置;若扫描结束仍没有找到关键字等于value的结点,表示查找失败,则函数返回-1
说明:顺序查找适合于存储结构为顺序存储或链接存储的线性表

代码:

function sequenceSearch(arr, value) {
   
    for (let i = 0; i < arr.length; i++) {
   
        if (arr[i] === value) return i;
    }
    return -1;
}
var a = [25, 2, 63, 48, 42, 10, 5, 55];
console.log(sequenceSearch(a, 48))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值