算法:基础知识
什么是算法?
算法,本质上就是 解决问题的一套步骤。
只要是:
输入一组数据
按照一定规则处理
得到结果
这整套处理过程,就是算法。
算法的理解
为什么程序员需要关心算法?因为同样一个问题,不同的算法效率可能差很多。有的做法可能几秒就能算出来,有的可能要跑好几分钟甚至更久。当数据量变大时,这种差距会越来越明显,所以很多系统性能好不好,其实和算法设计关系很大。
算法通常不会单独存在,它往往和数据结构一起使用。数据结构负责把数据组织好,比如数组、链表、树、哈希表这些;而算法则负责对这些数据进行操作。简单来说,一个负责存数据,一个负责处理数据,两者配合起来,程序才能高效运行。
在现实系统中,算法其实无处不在。比如搜索引擎要根据算法排序网页,短视频平台要用算法推荐内容,导航软件要用算法计算最短路线,电商平台也会用算法做商品推荐和排序。很多我们每天使用的软件,其实背后都有各种算法在工作。
学习算法并不是为了刷多少题,而是为了培养解决问题的思路。当遇到一个问题时,能快速想到几种解决方式,然后选择效率更高的一种,这才是算法真正的价值。很多经验丰富的工程师,其实都是在不断优化解决问题的方法。
算法学习应该关注什么?
很多人学习算法时容易陷入刷题。
但实际上更重要的是理解:
1.问题如何建模
2.数据结构如何设计
3.时间复杂度如何优化
4.算法思路如何演进
真正的算法能力,不是记住多少题。而是:看到问题,能快速想到解决思路。