同行们普遍有这个”认识“很多经典的算法实际工作中好像用到的并不多,是这样么?求大神拨云散雾
这个和从事的领域、工作性质、技术栈、个人编程习惯各个方面都有关系的。譬如如果不从事游戏界面编程之类的,可能寻找最佳路径等场景都挺难遇得到;譬如如果不需要做AI,那很多数据挖掘相关的算法也不太有机会用得到;譬如如果不需要倒腾巨量数据,那很多索引、压缩、集群、并发相关的算法也没有用武之地了。加上很多大家熟知的“经典算法”可能从编程语言层面就封装好了,所以的确容易有这样的观点。
不过,想想还是有不少地方可以用上“经典算法”的,譬如利用搜索相关的算法优化一下信息查询(数据库查询?全文搜索?);譬如在解释XML或者其它什么结构化数据的时候想一想树相关的算法;譬如做某个需求的时候先看看是不是某个经典算法的应用场景。。。
再者,脑子里的“经典算法”并不是要实际实现了才算是发挥作用。如果它的某种思路(动态规划?贪心策略?缓存化?)能帮助你用更好的设计去解决实际问题,那也不失为一种“应用”。