一提到算法,或许很多人觉得高大上,觉得很复杂。其实算法就是能利用特定方法使得现实问题更加简便的去解决的方法。同一问题的解决,可以有不同的算法完成,算法本身可简便,也可复杂。算法在大部分程序中有着举足轻重的作用。数据结构用来存储实际业务的运算结果,算法用来解决实际应用场景的数据处理过程,实际上编码的本质就是数据结构和算法的搭配。
正如Pascal之父所言,如果说有一个人因为一句话而得到了图灵奖,那么这个人应该就是NicklausWirth,这句话就是他提出的著名公式“算法+数据结构=程序”。
我个人工作这7年多所接触的算法,大都来自于金融量化、策略交易、通信、图像处理和模式识别领域,其他的没有接触过,不敢多做评价。做算法前,首当其冲的是先要做算法准备:举个例子,在做视频的算法时,肯定免不了视频的解码,拿到一幅图像,甚至到了拿到一个像素,才是开始算法本身的工作。而这些工作,对于专注于某个算法的人来说,应该是透明的。而且我相信能独立的编写出从读取视频到获取像素的全部程序的人也不是很多。
国内很多院校研究所,科研机构,喜欢使用matlab。因为matlab提供了强大的函数库,使得复杂的数学运算(尤其是矩阵运算(奇异值分解、插值等等))、图像处理、模式识别等