Day15:[搜寻演算法]Linear Search - 线性搜寻法

https://ithelp.ithome.com.tw/upload/images/20210915/201286045gKOLe9ctK.jpg

线性搜寻法可以说是最容易理解的搜寻演算法了,相信大家都有过类似的经验,在图书馆里想在书架上找一本书"汤姆历险记",假如书本都是未经排序的,就必须一本一本慢慢的找,直到找到要找的书为止,所以以程序码来说,就会以回圈遍历的方式,一步一步的检查当前的项目是否为要找的对象 ,如果找不到就会回传 -1。

用js实作线性搜寻法

const linearSearch = (arr, num) => {
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] === num) return i;
    }
    return -1;
};

幸运的话有可能第一个值就是要找的对象,所以找一次O(1)就结束了,反之如果运气不好,目标在最後一个,就要从从头找到尾O(n)。

时间复杂度

  • 在最差的情况下, 时间复杂度是O(n)
  • 在最佳的情况下 , 时间复杂度是O(1)
  • 在平均情况下,时间复杂度为 O(n/2)

<<:  【企业 WFH 新型态,文件加密护资安】活动分享

>>:  [Day07] swift & kotlin 入门篇!(5) 基础语法-集合物件

【Day-26】我们是怎麽开始的?:一间传统软件公司从 0 开始建置的 DevOps 文化(工具篇)- 高品质工作四部法

#前言 昨天我们稍微介绍实际案例是什麽样子,挑战终於进到了尾声,今天我们来介绍一些重要的工具! 00...

[Day29] 第二十九课 Azure灾害复原(DRaaS)-2[进阶]

我们来接续昨日Azure Site Recovery(ASR)的进度之前, 我想补充一下地端及云端容...

鬼故事 - CS 高手

鬼故事 - CS 高手 Credit: Vince mcmahon 灵感来源: UCCU Hacke...

ETA Screen (1)

现在来到整个 app 最重要的页面:抵站时间页。这个页面基本上都是跟上一页一样,都是以 Recycl...

【第23天】部署API服务-GCP架设VM(一)

【第23天】部署API服务-GCP架设VM(一) 摘要 作业流程 启用GCP服务 建立VM ssh连...