算法的认识

简介: 算法的认识

前言


作为一个对算法没有任何认知,非科班出身的前端程序员,如果想提高自己的能力,不再只写业务代码当一个应用工程师,算法是必须掌握的一门本领。算法也是一种思想,当你去读一些优秀框架的源码,如果对算法和数据结构一无所知,读起来很困难,你无法理解人家为什么要那样写,那样写的好处是什么,接下来就跟大家分享下作为一个前端程序员,如何学习数据结构与算法。


后续将持续更新与算法相关的文章,分享自己所学以及踩的各种坑。


什么是算法


算法就是计算或者解决问题的步骤,算法与程序有些相似,区别在于程序是以计算机能够理解的编程语言编写而成的,可以在计算机上运行,而算法是以人类能够理解的方式描述的,用于编写程序之前。不过,在这个过 程中到哪里为止是算法、从哪里开始是程序,并没有明确的界限。


就算使用同一个算法,编程语言不同,写出来的程序也不同;即便使用相同的编程语言, 写程序的人不同,那么写出来的程序也是不同的。


数据结构与算法的作用


计算机是一个冰冷的机器,操作者下发什么指令,计算机就会执行什么操作


开发者要做的只是如何把实际问题转换成计算机可识别的指令,如何转化?《数据结构》的经典说法:设计出数据结构,在施加以算法就行了。


开发者编写的指令好坏,将直接影响到程序的性能,指令又由数据结构和算法组成,因此数据结构和算法的设计与最终程序的好坏息息相关。


入门书籍以及学习路线



入门书籍推荐


  • 《学习JavaScript数据结构与算法》 第3版


640.png


  • 《我的第一本算法书》


640.png


  • 《数据结构与算法图解》


640.png


  • 《大话数据结构》


640.png


学习路线推荐


  • 先学习《我的第一本算法书》

书中没有使用任何编程语言,有丰富的配图来讲解算法和数据结构,作为一个小白,看这本书最为合适。

  • 再学习《学习JavaScript数据结构与算法》 第3版

本书从js角度出发,讲解常用算法和数据结构。相对于前端而言,这本书可以让你理解算法和数据结构在前端的应用。

  • 最后学习《数据结构与算法图解》和《大话数据结构》

这两本书采用其他编程语言讲解,学习完前两本书后,再来看两本书可以更深层次的理解算法。


算法题目的选择与练习


  • 《剑指offer》

可以在书中学习很多经典题目,练的多了会总结出每种算法的规律,掌握书中的内容后,再去解leetcode上的题会轻松很多。

  • 刷leetcode

先从简单的题开始解,慢慢进入中等难度。中等的题目可以解决时,已经对典型题目有了很深的见解,此时再去解决更复杂的问题时,就可以活学活用,根据规律来解决问题。


写在最后


  • 公众号无法外链,如果文中有链接,可点击下方阅读原文查看😊
相关文章
|
2月前
|
算法
算法题(1)
算法题(1)
143 62
|
2月前
|
算法
算法题(4)
算法题(4)
56 6
|
4月前
|
自然语言处理 算法 BI
Baum-Welch算法
Baum-Welch算法
|
4月前
|
存储 算法 网络安全
推公式算法的实现
推公式算法的实现
推公式算法的实现
|
算法
算法练习——(2)逢7过
中国朋友们聚会时喜欢玩"逢7过"的游戏,老外有个同样的游戏,FlipFlop,它从1计数到100,顺序输出。当遇到3的倍数就要说“Flip”,遇到5的倍数就要说“Flop”,既为3的倍数又为5的倍数则要说“FlipFlop”,说错的话表演节目或罚酒。
183 0
|
算法
算法题
1.厘米换算英尺英寸 分析:题目非常简单,但是今晚喝的有点多,有点迷 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
463 0
算法题
拓展欧几里得算法
拓展欧几里得算法
89 0
|
算法 C++
|
算法
2015年408算法题
故辅助数组 q 的大小为 n+1,各元素的初值均为 0。依次扫描链表中的各结点,同 时检查 q[|data|]的值,如果为 0,则保留该结点,并令 q[|data|]=1;否则,将该结点从链表中删除。
224 0
2015年408算法题