欢迎关注公众号【自动驾驶事务所】,分享更多以C/C++为计算机语言,以自动驾驶为方向的文章
1.简介
程序员为什么要学算法?
程序员对算法通常怀有复杂情感,算法很重要是共识,但是否每个程序员都必须学算法是主要的分歧点。
很多人觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上算法,觉得算法深不可测。但是这些其实都不是具体的算法,而是一系列算法的集合。对初学者来说,为避免片面或抽象地理解算法,可根据几个问题评估自己是否适合学习算法:
(1).学习算法最重要的是什么?
在学习算法的过程中,一能解决问题,二对自己有用,是最大的推动力。而那些抽象的,与程序员日常工作关系不大的竞赛题,很难提起大多数人的学习兴趣。最好能通过工作中应用的一些案例来切入,利用碎片化时间入门算法,提升技术竞争力。有了兴趣之后就可以尝试将算法尽可能的优化,并套用到一个完整的项目中。
“学习算法很难”,怎样降低难度?从基础来讲,要学习算法,至少要非常熟练地掌握一种排序算法,各种线性表的插入、删除算法,树的遍历和插入、删除算法,图的遍历算法等。多学习掌握一些常见问题的解决模式,比如穷举算法如何应用,动态规划算法如何应用。最后要勤思考已经掌握并解决的算法,复盘为什么用这种方法解决,有没有其他方法,类似的问题怎么办,提高举一反三的能力。
编程和数据挖掘算法的区别与联系?
编程算法只是算法的一种表达形式,还可以用表格或流程图来表达算法。数据挖掘领域涉及的算法和其他领域算法只是问题域不同。数据挖掘和机器学习常用的