看到几只玩的很 high 的小伙伴,赶脚很迷惑 这味同嚼蜡的东西,有啥好 high 的╮(╯▽╰)╭
@mogodb 亲,你解决个公交线路最短路径问题试试,你自己写个人脸识别的程序试试... 算法是从实际生活中的问题中抽象出来 说的不中听一点,觉得算法没用的人是因为高度还不够
算法来源于实际问题,但又高于生活理论。算法的魅力在于,通过建立模型把人思考的过程赋予机器,只关注结果。现在比较多人关注的是图论建模、高维建模、社交网络这类的东西,楼主有兴趣不妨了解下。正确的模型,就能把一些复杂的问题简化。
现在有一个商品叫“iPhone 6”,他有“Plus”和“标准版”,有 16G,64G,128G 版,有金、银、灰三中颜色,其中又分为全网通版、电信版、移动版、联通版。
做出淘宝的 js 效果,有货的时候才能被选中,没货的时候不可以被选中。一共 2x3x3x4 种可能,不用算法才死脑细胞。
@MrPasserby 这个完全没有任何难度啊,也看不出和算法有任何关系。有没有货都是后端输出的,跟前端有什么关系。前端根据 sku 数据,没货的在界面加个 disable 不就行了。
工程师,平日工作主要解决的,大都是工程问题,操作数据库,调用 API 之类的。 算法在一些业务场景才用到,主要是把业务问题,抽象成数学问题,然后用代码实现各种数学公式,对于工程师,用用就可以了,有很多现成的算法库。 但要想做的更好,那学习能力是关键,大量阅读资料,并不断补充数学知识才行。
什么场景会用到算法?举几个栗子:
如果想成为编程高手,那就每天写代码,坚持写两年。 如果想成为世界级的大牛,那就十年如一日的写代码, 或者,写两年代码,然后上一门算法课。
麻省理工学院公开课:算法导论,比国内大学的算法课精彩。
做一个不是很恰当的比喻! 算法 和 Ruby 语言 一样 只是一种技能。 即使不会,你依然可以编程。 但是,你多掌握了一种技能,你可以干更多的事情。
再做个比喻, 算法 就像 武功中的 内功心法。 编程语言 就像 武功中的 外功招数。 集大成者 必须内外兼修。
再做个比喻。 算法 就像 Dota 里面的增加输出的装备 编程语言 就像 Dota 里面的输出性技能
总之 数据结构 和 算法分析 都是很有用的! 都是编程的内功,是计算机编程的精髓。 对程序员来说,会受用一生!
而编程语言这东西,每个 5-6 年,就要换一种,属于计算机技术的皮毛!
最初我用 Delphi,后来我用 C++,然后我用 C#,之后用 Ruby/HTML,今后我打算用 JS/Go 但是 我最初学过的 数据结构 和 算法分析 这些知识基本 没变过, 反而觉得越来越有用!
经常思考算法能够锻炼思维能力,从纷繁复杂的可能方法中快速找出近优的解。
当然能够开发出独门算法那就更 NB 了。基本上优化程序,一靠业务逻辑上的裁剪,再一个就是发现更好的算法了。
个人理解,95% 的人是用算法的,只有 5% 的人是研究算法的。说有意义,是了解算法可以帮助你的使用;说没有意义,可以理解为不做研究算法的工作。实话说,平时的工作,真能自己上手来写两个算法的机会不多,各种语言早就有轮子了,工作性质决定吧。
同 #26 楼,有空问这种问题,还不如去写代码。 以及,楼主连回复人都能回复错么……