这是记录前端面试的话术集锦第二十二篇博文——高频考点(常见数据结构)
,我会不断更新该博文。❗❗❗
经常会有人提问说:学习数据结构或者算法对于前端工程师有用么?
总的来说,这些基础学科在短期内收效确实甚微,但我们不要将自己局限在前端工程师这点上。当我们把视野放到编程这个角度去说,数据结构算法一定是有用的,并且也是你未来的一个天花板。
可以不花费集中的时间去学习这些内容,但是一定需要时常去学习一点,因为这些技能可以实实在在提升你写代码的能力。
在进入正题之前,我们先来了解下什么是时间复杂度。
通常使用最差的时间复杂度来衡量一个算法的好坏。
常数时间O(1)
代表这个操作和数据量没关系,是一个固定时间的操作,比如说四则运算。
对于一个算法来说,可能会计算出操作次数为aN + 1
,N
代表数据量。那么该算法的时间复杂度就是O(N)
。因为我们在计算时间复杂度的时候,数据量通常是非常大的,这时候低阶项和常数项可以忽略不计。
当然可能会出现两个算法都是O(N)
的时间复杂度,那么对比两个算法的好坏就要通过对比低阶项和常数项了。
栈是一个线性结构,在计算机中是一个相当常见的数据结构。
栈的特点是只能在某一端添加或删除数据,遵循先进后出的原则: