首页 > 其他分享 >[数据结构学习笔记16] 线性查找(Linear Search)

[数据结构学习笔记16] 线性查找(Linear Search)

时间:2025-01-18 20:56:37浏览次数:1  
标签:Search linear 16 search collection 查找 let data Linear

查找算法是指从一个集合里比如数组,列表,树里查找我们想要的值。

我们从最简单的线性查找开始。

线性查找,就是遍历集合里的元素,查看是否有和我们想要查找的值相同的,有则查找成功,没有则查找失败。

比如:

5,8,6,9,1,7,3,2,4

我们要找3,那从5开始依次往后,到了第7个(下标6),我们找到了3。如果我们要找10,同样从5开始,依次往后,一直到最后一个元素,都没有10,所以查找不成功。

function linear_search(collectioin, item) {
  for (let i = 0; i < collection.length; i++) {
        if (collection[i] === item) {
             return i;
         }
   }  
   // Item not found
    return -1;
}

调用函数

let data = [5,8,6,9,1,7,3,2,4];
let result = linear_search(data, 3);
console.log(result); // 6
let result1 = linear_search(data, 10);
console.log(result1); // -1

这里有个要注意的,如果有重复的数据在集合里,只返回第一个匹配的下标。

时间复杂度

线性查找的复杂度是O(n),最好的是O(1),查找的值正好在第一位,最坏的情况有两种,一种查找的值在最后一位,一种是查找的值不存在。

 

全局线性搜索,返回所有匹配值,包括重复值。

function global_linear_search(collection, item) {
  let foundPositions = [];

  for (let i = 0; i < collection.length; i++) {
       if (collection[i] === item) {
            foundPositions.push(i);
        }
   }  

   if (foundPositions.length > 0) {
          return foundPositions;
    } else {
         return -1;
    }
}

调用global_linear_search

let data = [5,8,3,9,1,7,3,2,4,3,6];
let result = global_linear_search(data, 3);
console.log(result); // [2,6,9]

线性查找适用于小数据集,没有排序,不需要重复查找,或者我们要查找的数据可能在数据集的开始部分。

标签:Search,linear,16,search,collection,查找,let,data,Linear
From: https://www.cnblogs.com/Eagle6970/p/18677818

相关文章

  • 20250116 支付宝出现重大事故 有感
    事故20250116下午支付宝直接冲上微博热搜榜首,原因是在2025年01月16日14:40-14:45期间出现大量支付显示“政府补贴”减免字样。最开始我是在小红书上看到的相关内容,只是看到这个图片,心想这肯定是小红书暗广,撇了一眼就划过了。当“支付宝出现重大BUG”出现在微博头条时,才确信此事......
  • Cisco ISR 1000 Series IOS XE Release 17.16.1a ED
    CiscoISR1000SeriesIOSXERelease17.16.1aED思科1000系列集成多业务路由器IOSXE系统软件请访问原文链接:https://sysin.org/blog/cisco-isr-1000/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科1000系列集成多业务路由器可靠性、安全性和性能......
  • Cisco ISR 4000 Series IOS XE Release 17.16.1a ED
    CiscoISR4000SeriesIOSXERelease17.16.1aED思科4000系列集成服务路由器IOSXE系统软件请访问原文链接:https://sysin.org/blog/cisco-isr-4000/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科4000系列集成服务路由器让您的分支机构站点为实施全......
  • 科普文:算法和数据结构系列【死磕字典树:字典树的升级版三叉树Ternary Search Tree优化
    概叙科普文:算法和数据结构系列【死磕字典树:来一个英文字母游戏】-CSDN博客科普文:算法和数据结构系列【高效的字符串检索结构:字典树Trie树原理、应用及其java示例代码解读】-CSDN博客‌原理‌:Trie树利用字符串之间的公共前缀来减少不必要的字符串比较,从而提高查询效率。每个......
  • ADCP414、ADCP416四通道125MSPS速率ADC替代AD9653、AD9253,可提供ZZKK证明
    ADCP416-125/105/80是一款4通道、16位、125/105/80MSPS模数转换器(ADC),内置片内采样保持电路,专门针对低成本、低功耗、小尺寸和易用性而设计。该产品的转换速率最高可达125MSPS,具有杰出的动态性能与低功耗特性,适合比较重视小封装尺寸的应用。ADCP416-125特性和优势--电源供电:1.......
  • CF516E Drazil and His Happy Friends 做题记录
    CF516EDrazilandHisHappyFriendsDescription有\(n\)个男生\(m\)个女生,编号分别为\(0\simn-1\)和\(0\simm-1\)。有\(B\)个男生和\(G\)个女生是快乐的,其他人是不快乐的。在第\(i\)天,编号为\(i\bmodn\)的男生和编号为\(i\bmodm\)的女生会一起......
  • ElasticSearch metrics aggregations(度量聚合)
    目录metricsaggregations(度量聚合)avg(平均聚合)脚本(script)值脚本(valuescript)缺失的值(missingvalue)weighted_avg(加权平均聚合)例子脚本(script)缺失的值(missingvalues)boxplot(箱线图聚合)语法脚本(script)箱线图的值(通常)是近似值压缩(compression)缺失的值cardina......
  • ElasticSearch 桶(bucket)聚合
    目录桶(bucket)聚合adjacency_matrix聚合使用Limitationsauto_date_histogram(自动间隔的日期直方图聚合)键(key)间隔(interval)时区(timezone)脚本参数minimum_interval缺失的值children聚合composite(复合聚合)值的来源(valuesource)terms(词项)histogram(直方图)datehistog......
  • ElasticSearch Aggregations(聚合)
    目录Aggregations(聚合)构建聚合值的来源Aggregations(聚合)聚合框架有助于提供基于搜索查询的聚合数据。它基于被称为聚合(aggregations)的简单构建块,可以组合这些块来构建复杂的数据摘要。聚合可以被看作是在一组文档上构建分析信息的工作单元。执行的上下文定义了这个文档......
  • 2025年1月16日人工智能与科技新闻速递
    2025年已经来临,全球人工智能领域正在经历一场前所未有的技术浪潮。在这一年初,众多科技巨头纷纷发布新一轮的AI布局,展现出它们在人工智能领域的雄心和战略规划。从Google在英国市场推出AI概览功能,到Adobe的创新工具,再到EarthSpeciesProject的突破性生态保护应用,人工智能正......