在开发过程中,为什么感觉那些经常看到的算法在实际中不太能用到呢?算法经常的使用场景是哪些?
每个算法都有自己适用的场景和局限的。譬如求加权图的最短路径的时候会考虑用Dijkstra之类的算法,求最小生成树的时候又会用Prime、Kruskal之类的算法。每个算法各不相同。平时有“常用算法在实际应用中不太能用到”这个印象,可能有这些方面的原因:1. 语言已经集成了这些算法(譬如排序);2. 应用的场景比较特殊,尚未有经典的算法沉淀。
不过就像之前说过的,自己写的程序就是数据结构加上算法(自己设计的算法,或者常用的经典算法,或者两者都有)。所以学习算法不仅能在合适的场景下应用,还能作为自己设计算法的参考。