前端学数据结构与算法(一):复杂度分析

前言

兜兜转转了这么久,数据结构与算法始终是逃不过命题。曾几何时,前端学习数据结构与算法,想必会被认为不务正业,但现今想必大家已有耳闻与经历,面试遇到链表、树、爬楼梯、三数之和等题目已经屡见不鲜。想进靠谱大厂算法与数据结构应该不止是提上日程那么简单,可能现在已经是迫在眉睫。这次决定再写一个系列也只是作为我这段时间的学习报告,也不绝对不会再像我之前的vue原理解析那般断更了,欢迎大家监督~

学数据结构与算法的最好时机是十年前,其次就是现在。

什么是数据结构与算法?

例如书店里的书可以以年代作为区分摆放,可以以作家个人为区分摆放,也可以以类型作为区分摆放,这么摆的目的就是为了高效的找到心仪的书,这就是数据结构;又例如你借了一摞书准备走出书店,其中有一本忘了登记,如何快速找出那本书?你可以一本本的尝试,也可以每一次直接就检测半摞书,再剩下的半摞书依然如此,这样12本书,你只用4次即可,而这就是算法。

最后

下面这段代码每次都会出队数组的第一个元素,那下面这段代码的时间复杂度是多少?

function test(arr) {
    let len = arr.length
    for (let i = 0; i < len; i++) {
        arr.shift()
    }
}

你可能感兴趣的:(算法前端)